제출 #1257349

#제출 시각아이디문제언어결과실행 시간메모리
12573493m17Drvca (COCI19_drvca)C++20
0 / 110
121 ms13856 KiB
#include <bits/stdc++.h> using namespace std; #define int long long const int Nmax = 1e5 + 10; int n; int a[Nmax]; multiset <int> st; vector <int> v; map <int , int> mp; void check(int start, int d) { int now = start; for (int i = 1; i <= n; i++) st.insert(a[i]); multiset<int>::iterator it2 = st.begin(); ++it2; for (; it2 != st.end(); it2++) { int diff = *it2 - *prev(it2); mp[diff]++; } while (st.find(now) != st.end()) { v.push_back(now); multiset<int>::iterator it = st.find(now); now += d; if (it != st.begin()) { int diff = *it - *prev(it); mp[diff]--; if (mp[diff] == 0) mp.erase(diff); } if (it != --st.end()) { int diff = *next(it) - *it; mp[diff]--; if (mp[diff] == 0) mp.erase(diff); } if (it != st.begin() && it != --st.end()) { int diff = *next(it) - *prev(it); mp[diff]++; } st.erase(it); if (mp.size() == 1) { if (st.empty()) { st.insert(v.back()); v.pop_back(); } cout << v.size() << '\n'; for (int i = 0 ; i < (int)v.size() ; i++) cout << v[i] << ' '; cout << '\n'; cout << st.size() << '\n'; for (multiset<int>::iterator it3 = st.begin() ; it3 != st.end() ; it3++) cout << *it3 << ' '; cout << '\n'; break; } } } main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n; for (int i = 1 ; i <= n ; i++) cin >> a[i]; sort(a + 1 , a + n + 1); if (n <= 2) { cout << 1 << '\n' << a[1] << '\n'; cout << 1 << '\n' << a[2] << '\n'; return 0; } check(a[1], a[2] - a[1]); check(a[1], a[3] - a[1]); check(a[2], a[3] - a[2]); cout << -1; }

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

drvca.cpp:76:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   76 | main()
      | ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...