// SysY 运行库实现: // - 按实验/评测规范提供 I/O 等函数实现 // - 与编译器生成的目标代码链接,支撑运行时行为 #include #include #include #include // 输入函数 int getint() { int value; scanf("%d", &value); return value; } int getch() { char ch; scanf("%c", &ch); return (int)ch; } float getfloat() { float value; scanf("%f", &value); return value; } int getarray(int arr[]) { int n; scanf("%d", &n); for (int i = 0; i < n; i++) { scanf("%d", &arr[i]); } return n; } int getfarray(float arr[]) { int n; scanf("%d", &n); for (int i = 0; i < n; i++) { scanf("%f", &arr[i]); } return n; } // 输出函数 void putint(int value) { printf("%d", value); } void putch(int ch) { printf("%c", (char)ch); } void putfloat(float value) { printf("%a", value); } void putarray(int n, int arr[]) { printf("%d:", n); for (int i = 0; i < n; i++) { printf(" %d", arr[i]); } printf("\n"); } void putfarray(int n, float arr[]) { printf("%d:", n); for (int i = 0; i < n; i++) { printf(" %a", arr[i]); } printf("\n"); } // putstr 在测试用例中定义 // 计时函数 static clock_t start_time = 0; void starttime() { start_time = clock(); } void stoptime() { clock_t end_time = clock(); double elapsed = (double)(end_time - start_time) / CLOCKS_PER_SEC; fprintf(stderr, "Total time: %.6f seconds\n", elapsed); } // 内存管理函数(如果需要) void* _sysy_allocate(int size) { return malloc(size); } void _sysy_deallocate(void* ptr) { free(ptr); }