# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
125352 | figter001 | Highway design (CEOI12_highway) | C++17 | 0 ms | 0 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
// #include "office.h"
using namespace std;
bool vis[11][11][11];
int l1,l2;
int l1j[12],l2j[12];
int GetN(){
return l1+l2;
}
int isOnLine(int a,int b,int c){
int can = 0;
for(int i=0;i<l1;i++){
if(a == l1j[i])can++;
if(b == l1j[i])can++;
if(c == l1j[i])can++;
}
if(can == 3)return 1;
can = 0;
for(int i=0;i<l2;i++){
if(a == l2j[i])can++;
if(b == l2j[i])can++;
if(c == l2j[i])can++;
}
if(can == 3)return 1;
return 0;
}
void Answer(int a,int b,int c,int d){
cout << a << ' ' << b << ' ' << c << ' ' << d << endl;
}
int main(){
#ifndef ONLINE_JUDGE
freopen("input.txt","r",stdin);
#endif
cin>>l1;
for(int i=0;i<l1;i++)cin>>l1j[i];
cin>>l2;
for(int i=0;i<l2;i++)cin>>l2j[i];
int n = GetN();
int res;
int a,b,c;
for(int i=1;i<=n;i++){
a = i;
b = i+1;
c = i+2;
res = isOnLine(a,b,c);
if(res == 0)break;
}
int lst = -1;
int g = 0;
for(int i=c+1;i<=n;i++){
res = isOnLine(a,b,i);
if(res == 1){
g = c;
c = i;
break;
}
res = isOnLine(a,i,c);
if(res == 1){
g = b;
b = i;
swap(c,b);
break;
}
res = isOnLine(i,b,c);
if(res == 1){
g = a;
a = i;
swap(c,a);
break;
}
if(lst == -1)lst = i;
else{
pair<int,int> q;
res = isOnLine(i,lst,a);
if(res == 1)q = {b,c};
res = isOnLine(i,lst,b);
if(res == 1)q = {a,c};
res = isOnLine(i,lst,c);
if(res == 1)q = {a,b};
Answer(lst,i,q.first,q.second);
return 0;
}
}
int x,y;
for(int i=c+1;i<=n;i+=2){
x = i;
y = i+1;
res = isOnLine(a,x,y);
if(res == 0){
break;
}
}
cout << x << ' ' << y << endl;
res = isOnLine(a,b,x);
if(res == 0){
Answer(a,b,g,x);
return 0;
}
res = isOnLine(a,b,y);
if(res == 0){
Answer(a,b,g,y);
return 0;
}
return 0;
}