제출 #1306999

#제출 시각아이디문제언어결과실행 시간메모리
1306999MunkhErdeneTriple Peaks (IOI25_triples)C++17
컴파일 에러
0 ms0 KiB
#include "triples.h" #include <bits/stdc++.h> /*#ifdef LOCAL #define dbg std::cout #else struct DebugDummy { template<typename T> DebugDummy& operator<<(const T&) { return *this; } }; DebugDummy dbg; #endif*/ //#define dbg cout #define dbg cerr using namespace std; #define _ << ' ' << using ll = long long; long long count_triples(std::vector<int> H) { vector<ll> a({H.begin(), H.end()}); ll n = a.size(); ll ans = 0; for(ll i = 0; i < n; i++) { for(ll j = i + 2; j < n; j++){ auto [mx, mn] = make_pair(a[i], a[j]); if(mn > mx) swap(mx, mn); ll d = j - i; if(mx > d) continue; if(mx == d) { ll cand1 = i + mn; ll cand2 = j - mn; if(cand1 == cand2) { if(j - cand1 == a[cand1] && cand1 != j) {ans++; dbg << i _ cand1 _ j << '\n';} continue; } if(j - cand1 == a[cand1] && cand1 != j) {ans++; dbg << i _ cand1 _ j << '\n';} if(cand2 - i == a[cand2] && cand2 != i) {ans++; dbg << i _ cand2 _ j << '\n';} } else { if(a[i] + a[j] != d) continue; ll cand1 = i + mn; ll cand2 = i + mx; dbg << i _ j _ a[i] _ a[j] _ cand1 _ cand2 _ a[cand1] _ a[cand2] _ d<< '\n'; if(cand1 == cand2) { if(a[cand1] == d) {ans++; dbg << i _ cand1 _ j << '\n';} continue; } if(a[cand1] == d) {ans++; dbg << i _ cand1 _ j << '\n';} if(a[cand2] == d) {ans++; dbg << i _ cand2 _ j << '\n';} } } } return ans; } std::vector<int> construct_range(int M, int K) { return {1, 1, 1}; } namespace { void run_part1() { int N; assert(1 == scanf("%d", &N)); std::vector<int> H(N); for (int i = 0; i < N; i++) assert(1 == scanf("%d", &H[i])); fclose(stdin); long long T = count_triples(H); printf("%lld\n", T); fclose(stdout); } void run_part2() { int M, K; assert(2 == scanf("%d %d", &M, &K)); fclose(stdin); std::vector<int> H = construct_range(M, K); int N = H.size(); printf("%d\n", N); for (int i = 0; i < N; i++) printf("%d%c", H[i], " \n"[i + 1 == N]); fclose(stdout); } } // namespace int main() { int part; assert(1 == scanf("%d", &part)); if (part == 1) run_part1(); else if (part == 2) run_part2(); return 0; }

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

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