# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
228840 | super_j6 | 고속도로 설계 (CEOI12_highway) | C++14 | 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 "office.h"
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <vector>
#include <string.h>
using namespace std;
#define endl '\n'
#define ll long long
#define pi pair<int, int>
#define f first
#define s second
int n;
int a, b, c, d, e;
vector<int> v[2];
bool works(int x, int y, int z){
string s(3, ' ');
s[0] = x + '0', s[1] = y + '0', s[2] = z + '0';
sort(s.begin(), s.end());
return s != "123" && s != "145";
}
int main(){
ios::sync_with_stdio(false);
cin.tie(NULL);
n = getN();
for(a = 1, b = 2; v[0].size() < 2; b += 2){
v[isOneLine(a, b, b + 1)].push_back(b);
}
if(!v[1].empty()){
b = v[1][0];
c = v[0][0] + isOnLine(a, b, v[0][0]);
d = v[0][1] + isOnLine(a, b, v[0][1]);
}else{
bool t = 0;
for(a = 1; a < 3 && t; a++)
for(b = a + 1; b < 6 && t; b++)
for(e = b + 1; e < 6 && t; e++){
if(works(a, b, e)) t = isOnLine(a, b, e)
}
d = 15 - a - b - e;
for(c = 1; c == a || c == b || c == e; c++);
d = d - c;
if(works(a, b, c) && isOnLine(a, b, c)) swap(c, d), t = 1;
if(!t && works(a, b, d) && isOnLine(a, b, d)) t = 1;
if(t){
for(d = 6; isOnLine(d, d + 1, d + 2); d += 3);
for(e = 0; e < 2 && isOnline(a, b, d + e); e++);
d += e;
}
}
Answer(a, b, c, d);
return 0;
}