제출 #1263946

#제출 시각아이디문제언어결과실행 시간메모리
1263946wedonttalkanymore비밀 (JOI14_secret)C++20
컴파일 에러
0 ms0 KiB
#include "secret.h" #include <bits/stdc++.h> using namespace std; using ll = long long; //#define int long long #define pii pair<ll, ll> #define fi first #define se second const ll MAXN = 1e3 + 5, inf = 1e9, mod = 1e9 + 7, block = 320, lim = 16; int a[MAXN]; int n; int dp[MAXN][MAXN]; #define MAX_N 1000 #define MAX_Q 10000 #define MAX_VALUE 1000000000 static int N; static int A[MAX_N]; static int Q; static int L[MAX_Q]; static int R[MAX_Q]; static int secret_count; int Secret(int X, int Y) { ++secret_count; if (!(0 <= X && X <= MAX_VALUE)) { fprintf(stderr, "Wrong Answer [1]\n"); exit(0); } if (!(0 <= Y && Y <= MAX_VALUE)) { fprintf(stderr, "Wrong Answer [1]\n"); exit(0); } return (X + 2 * (Y / 2) < MAX_VALUE) ? (X + 2 * (Y / 2)) : MAX_VALUE; } void dnc(int l, int r) { if (l > r) return; if (l == r) { dp[l][l] = a[l]; return; } int mid = (l + r) / 2; dp[mid][mid] = a[mid]; dp[mid + 1][mid + 1] = a[mid + 1]; for (int i = mid + 2; i <= r; i++) dp[mid + 1][i] = Secret(dp[mid + 1][i - 1], a[i]); for (int i = mid - 1; i >= l; i--) dp[i][mid] = Secret(dp[i + 1][mid], a[i]); dnc(l, mid); dnc(mid + 1, r); } void Init(int N, int A[]) { n = N; for (int i = 1; i <= n; i++) a[i] = A[i - 1]; dnc(1, n); } int make(int l, int r, int &L, int &R) { // if (l == r) return 0; int mid = (l + r) / 2; if (L <= mid && mid <= R) { if (L < mid) return Secret(dp[L][mid - 1], dp[mid][R]); else return dp[L][R]; } if (R <= mid) return make(l, mid, L, R); else return make(mid + 1, r, L, R); } int Query(int L, int R) { return make(1, n, L, R); return 0; } //int main() { // int i, j; // int secret_count_by_init; // int max_secret_count_by_query = 0; // // if (1 != scanf("%d", &N)) { // fprintf(stderr, "error: cannot read N.\n"); // exit(1); // } // if (!(1 <= N && N <= MAX_N)) { // fprintf(stderr, "error: N is out of bounds.\n"); // exit(1); // } // for (i = 0; i < N; ++i) { // if (1 != scanf("%d", &A[i])) { // fprintf(stderr, "error: cannot read A[%d].\n", i); // exit(1); // } // if (!(0 <= A[i] && A[i] <= MAX_VALUE)) { // fprintf(stderr, "error: A[%d] is out of bounds.\n", i); // exit(1); // } // } // if (1 != scanf("%d", &Q)) { // fprintf(stderr, "error: cannot read Q.\n"); // exit(1); // } // if (!(0 <= Q && Q <= MAX_Q)) { // fprintf(stderr, "error: Q is out of bounds.\n"); // exit(1); // } // for (j = 0; j < Q; ++j) { // if (2 != scanf("%d%d", &L[j], &R[j])) { // fprintf(stderr, "error: cannot read L[%d] and R[%d].\n", j, j); // exit(1); // } // if (!(0 <= L[j] && L[j] <= R[j] && R[j] <= N - 1)) { // fprintf(stderr, // "error: L[%d] and R[%d] do not satisfy the constraints.\n", // j, j); // exit(1); // } // } // // secret_count = 0; // Init(N, A); // secret_count_by_init = secret_count; // // for (j = 0; j < Q; ++j) { // secret_count = 0; // printf("%d\n", Query(L[j], R[j])); // if (max_secret_count_by_query < secret_count) { // max_secret_count_by_query = secret_count; // } // } // // fprintf(stderr, "number of calls to Secret by Init : %d\n", // secret_count_by_init); // fprintf(stderr, "maximum number of calls to Secret by Query : %d\n", // max_secret_count_by_query); // // return 0; //}

컴파일 시 표준 에러 (stderr) 메시지

/usr/bin/ld: /tmp/ccCVGuKI.o: in function `Secret(int, int)':
grader.cpp:(.text+0x2d0): multiple definition of `Secret(int, int)'; /tmp/ccB5vnh1.o:secret.cpp:(.text+0x0): first defined here
collect2: error: ld returned 1 exit status