# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
765678 | 2023-06-25T02:46:48 Z | 1075508020060209tc | Drvca (COCI19_drvca) | C++14 | 48 ms | 4196 KB |
#include<bits/stdc++.h> using namespace std; #define int long long #define X first #define Y second int n; int ar[200005]; int sfok[200005]; int sfokv[200005]; void CHK(vector<int>A,vector<int>B){ for(int i=1;i<A.size();i++){ if(A[i]-A[i-1]!=A[1]-A[0]){ return; } } for(int i=1;i<B.size();i++){ if(B[i]-B[i-1]!=B[1]-B[0]){ return; } } if(B.size()==0){ B.push_back(A.back()); A.pop_back(); } cout<<A.size()<<endl; for(int i=0;i<A.size();i++){ cout<<A[i]<<" "; }cout<<endl; A=B; cout<<A.size()<<endl; for(int i=0;i<A.size();i++){ cout<<A[i]<<" "; }cout<<endl;exit(0); } signed main(){ cin>>n; for(int i=1;i<=n;i++){ cin>>ar[i]; } if(n==2){ cout<<"1\n"; cout<<ar[1]<<endl; cout<<"1\n"; cout<<ar[2]<<endl;return 0; } sort(ar+1,ar+n+1); sfok[n]=1; for(int i=n-1;i>=1;i--){ if(ar[i]-ar[i+1]!=ar[n-1]-ar[n]){ break; } sfok[i]=1; } vector<int>A; vector<int>B; A.push_back(ar[1]); A.push_back(ar[2]); for(int i=3;i<=n;i++){ if(ar[i]-A.back()!=ar[2]-ar[1]){ B.push_back(ar[i]); }else{ A.push_back(ar[i]); } } CHK(A,B); A.clear();B.clear(); A.push_back(ar[1]); A.push_back(ar[3]); B.push_back(ar[2]); for(int i=4;i<=n;i++){ if(ar[i]-A.back()!=ar[3]-ar[1]){ B.push_back(ar[i]); }else{ A.push_back(ar[i]); } } CHK(A,B); A.clear();B.clear(); A.push_back(ar[2]); A.push_back(ar[3]); B.push_back(ar[1]); for(int i=4;i<=n;i++){ if(ar[i]-A.back()!=ar[3]-ar[2]){ B.push_back(ar[i]); }else{ A.push_back(ar[i]); } } CHK(A,B); // A.clear(); B.clear(); A.push_back(ar[1]); A.push_back(ar[2]); for(int i=3;i<=n;i++){ if(ar[i]-A.back()!=ar[2]-ar[1]){ B.push_back(ar[i]); }else{ if(B.size()<=1||((ar[i]-B.back())==(B[1]-B[0]))){ B.push_back(ar[i]);continue; } A.push_back(ar[i]); } } CHK(A,B); A.clear();B.clear(); A.push_back(ar[1]); A.push_back(ar[3]); B.push_back(ar[2]); for(int i=4;i<=n;i++){ if(ar[i]-A.back()!=ar[3]-ar[1]){ B.push_back(ar[i]); }else{ if(B.size()<=1||((ar[i]-B.back())==(B[1]-B[0]))){ B.push_back(ar[i]);continue; } A.push_back(ar[i]); } } CHK(A,B); A.clear();B.clear(); A.push_back(ar[2]); A.push_back(ar[3]); B.push_back(ar[1]); for(int i=4;i<=n;i++){ if(ar[i]-A.back()!=ar[3]-ar[2]){ B.push_back(ar[i]); }else{ if(B.size()<=1||((ar[i]-B.back())==(B[1]-B[0]))){ B.push_back(ar[i]);continue; } A.push_back(ar[i]); } } CHK(A,B); // cout<<-1; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 212 KB | Output is correct |
2 | Correct | 1 ms | 212 KB | Output is correct |
3 | Correct | 1 ms | 212 KB | Output is correct |
4 | Correct | 0 ms | 212 KB | Output is correct |
5 | Correct | 0 ms | 212 KB | Output is correct |
6 | Correct | 1 ms | 212 KB | Output is correct |
7 | Correct | 0 ms | 212 KB | Output is correct |
8 | Correct | 1 ms | 212 KB | Output is correct |
9 | Incorrect | 0 ms | 212 KB | Output isn't correct |
10 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 212 KB | Output is correct |
2 | Correct | 1 ms | 212 KB | Output is correct |
3 | Correct | 1 ms | 212 KB | Output is correct |
4 | Correct | 0 ms | 212 KB | Output is correct |
5 | Correct | 0 ms | 212 KB | Output is correct |
6 | Correct | 1 ms | 212 KB | Output is correct |
7 | Correct | 0 ms | 212 KB | Output is correct |
8 | Correct | 1 ms | 212 KB | Output is correct |
9 | Incorrect | 0 ms | 212 KB | Output isn't correct |
10 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 41 ms | 3856 KB | Output is correct |
2 | Correct | 46 ms | 4168 KB | Output is correct |
3 | Correct | 40 ms | 3864 KB | Output is correct |
4 | Correct | 40 ms | 4196 KB | Output is correct |
5 | Correct | 48 ms | 3828 KB | Output is correct |
6 | Correct | 40 ms | 4180 KB | Output is correct |
7 | Correct | 41 ms | 3776 KB | Output is correct |
8 | Correct | 41 ms | 4160 KB | Output is correct |
9 | Incorrect | 29 ms | 3080 KB | Output isn't correct |
10 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 212 KB | Output is correct |
2 | Correct | 1 ms | 212 KB | Output is correct |
3 | Correct | 1 ms | 212 KB | Output is correct |
4 | Correct | 0 ms | 212 KB | Output is correct |
5 | Correct | 0 ms | 212 KB | Output is correct |
6 | Correct | 1 ms | 212 KB | Output is correct |
7 | Correct | 0 ms | 212 KB | Output is correct |
8 | Correct | 1 ms | 212 KB | Output is correct |
9 | Incorrect | 0 ms | 212 KB | Output isn't correct |
10 | Halted | 0 ms | 0 KB | - |