제출 #1250580

#제출 시각아이디문제언어결과실행 시간메모리
1250580s4dz3개의 봉우리 (IOI25_triples)C++20
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; //sub4: #define int long long std::vector<int> construct_range(signed M, signed K) { return{}; } /*long long count_triples(vector<int> H) { int n = H.size(); ll ans = 0; for (int k = 0; k < n; k++) { int c = H[k]; int i = k - c; if (i < 0 || i >= n) continue; int a = H[i]; if (a > c - a) continue; int need = c - a; int j1 = i + a; int j2 = k - a; if (i < j1 && j1 < k && H[j1] == need) ans++; if (j2 != j1 && i < j2 && j2 < k && H[j2] == need) ans++; } return ans; }*/ long long count_triples(vector<signed> H) { int n = H.size(); long long ans = 0; for (int i = 0; i < n; i++) { int k = i + H[i]; if (k >= n) continue; int d = H[k]; int j1 = i + d; int j2 = k - d; if (j1 == j2) { if (i < j1 && j1 < k) { if (H[j1] == k - j1) ans++; } } else { if (i < j1 && j1 < k) { if (H[j1] == k - j1) ans++; } if (i < j2 && j2 < k) { if (H[j2] == j2 - i) ans++; } } } for (int k = 0; k < n; k++) { int i = k - H[k]; int d = H[i]; int j1 = i + d; int j2 = k - d; if (j1 == j2) { if (i < j1 && j1 < k) { if (H[j1] == k - j1) ans++; } } else { if (i < j1 && j1 < k) { if (H[j1] == k - j1) ans++; } if (i < j2 && j2 < k) { if (H[j2] == j2 - i) ans++; } } } for (int i = 0; i < n; i++) { int j = i + H[i]; if (j >= n) continue; int k = i + H[j]; if (k >= n) continue; if (k > j && H[k] == k - j) ans++; } unordered_map<int, vector<int>> nhom; for (int i = 0; i < n; i++) { int x = H[i] - i; nhom[x].push_back(i); } for (auto &p : nhom) { int x = p.first; vector<int> A = p.second; sort(A.begin(), A.end()); for (int u = 0; u < A.size(); u++) { int i = A[u]; for (int v = u + 1; v < A.size(); v++) { int j = A[v]; int k = i + j + x; if (k >= n) break; if (H[i] == j - i) continue; if (H[k] == j - i) ans++; } } } return ans; } signed main() { cout << count_triples({4, 1, 4, 3, 2, 6, 1}); return 0; }

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

/usr/bin/ld: /tmp/ccYdmIod.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/ccIh8AWb.o:triples.cpp:(.text.startup+0x0): first defined here
collect2: error: ld returned 1 exit status