이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include<bits/stdc++.h>
#include "trilib.h"
using namespace std;
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n=get_n();
vector<int>unnow;
if(is_clockwise(1,2,3)){
unnow.push_back(1);
unnow.push_back(2);
unnow.push_back(3);
}
else{
unnow.push_back(1);
unnow.push_back(3);
unnow.push_back(2);
}
for(int ind=4;ind<=n;ind++){
int sz=unnow.size();
vector<int>ted(sz+1);
int f=0;
int ff=unnow[1];
//cout<<ind<<" "<<ff<<" "<<unnow.back()<<" "<<unnow[0]<<" "<<unnow.size()<<endl;
if(is_clockwise(unnow.back(),unnow[0],ind)!=is_clockwise(unnow.back(),unnow[0],ff)){
ted[sz-1]++;
ted[0]++;
f=1;
}
//cout<<ind<<endl;
for(int i=0;i<sz-1;i++){
ff=unnow[0];
if(i==0){
ff=unnow[2];
}
if(is_clockwise(unnow[i],unnow[i+1],ind)!=is_clockwise(unnow[i],unnow[i+1],ff)){
ted[i]++;
ted[i+1]++;
f=1;
}
}
if(f==0){
continue;
}
vector<int>fake;
int z=0;
for(int i=0;i<sz;i++){
if(ted[i]==2){
continue;
}
if(ted[i]==0){
fake.push_back(unnow[i]);
continue;
}
fake.push_back(unnow[i]);
if(z){
continue;
}
if(i==sz-1||ted[i+1]!=0){
z=1;
fake.push_back(ind);
}
}
swap(fake,unnow);
fake.clear();
}
give_answer((int)unnow.size());
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |