답안 #765678

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
765678 2023-06-25T02:46:48 Z 1075508020060209tc Drvca (COCI19_drvca) C++14
0 / 110
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

drvca.cpp: In function 'void CHK(std::vector<long long int>, std::vector<long long int>)':
drvca.cpp:12:14: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   12 | for(int i=1;i<A.size();i++){
      |             ~^~~~~~~~~
drvca.cpp:17:14: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   17 | for(int i=1;i<B.size();i++){
      |             ~^~~~~~~~~
drvca.cpp:27:14: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   27 | for(int i=0;i<A.size();i++){
      |             ~^~~~~~~~~
drvca.cpp:32:14: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   32 | for(int i=0;i<A.size();i++){
      |             ~^~~~~~~~~
# 결과 실행 시간 메모리 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 -