답안 #228858

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
228858 2020-05-02T21:50:29 Z super_j6 고속도로 설계 (CEOI12_highway) C++14
0 / 100
1000 ms 1152 KB
#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;
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";
}

bool OnLine(int x, int y, int z){
    if(x >= n || y >= n || z >= n || x <= 0 || y <= 0 || z <= 0) while(1) x++;
    return isOnLine(x, y, z);
}

int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	
	n = GetN();
	
	for(a = 1, b = 2; v[0].size() < 2; b += 2){
	    v[OnLine(a, b, b + 1)].push_back(b);
	}
	
	return 0;
	
	if(!v[1].empty()){
	    b = v[1][0];
	    c = v[0][0] + OnLine(a, b, v[0][0]);
	    d = v[0][1] + OnLine(a, b, v[0][1]);
	}else{
	    for(a = 1, d = 0; a < 3 && !d; a++)
	    for(b = a + 1; b < 6 && !d; b++)
        for(c = b + 1; c < 6 && !d; c++){
            d = works(a, b, c) && OnLine(a, b, c);
        }
        if(!d) a = 4, b = 5, c = 6;
        a--, b--, c--;
        d = 15 - a - b - c;
        for(c = 1; c == a || c == b || c == 15 - a - b - d; c++);
        d -= c;
        if(works(a, b, c) && OnLine(a, b, c)) swap(c, d), d = 0;
        if(d && works(a, b, d) && OnLine(a, b, d)) d = 0;
        if(!d){
            for(d = 6; OnLine(d, d + 1, d + 2); d += 3);
            for(; d % 3 < 2 && OnLine(a, b, d); d++);
        }
	}
	
	Answer(a, b, c, d);

	return 0;
}

Compilation message

office.c: In function 'int isOnLine(int, int, int)':
office.c:85:29: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
     _Fin(0, "Protocol error");
                             ^
office.c:88:29: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
     _Fin(0, "Protocol error");
                             ^
office.c:92:37: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
     _Fin(false, "Too many questions");
                                     ^
office.c:83:7: warning: unused variable 'i' [-Wunused-variable]
   int i;
       ^
office.c: In function 'void Answer(int, int, int, int)':
office.c:123:29: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
     _Fin(0, "Protocol error");
                             ^
office.c:128:44: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
       if( (-_Apa[na1]==_N-3) && (na2!=na1) && (nb2!=na1) ||
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
office.c:130:30: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
          _Fin(true, "Correct");
                              ^
office.c:132:36: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
          _Fin(false, "Wrong answer");
                                    ^
office.c:134:44: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
       if( (-_Apa[na2]==_N-3) && (na1!=na2) && (nb1!=na2) ||
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
office.c:136:30: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
          _Fin(true, "Correct");
                              ^
office.c:138:36: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
          _Fin(false, "Wrong answer");
                                    ^
office.c:140:33: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
       _Fin(false, "Wrong answer");
                                 ^
office.c:142:23: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
   _Fin(true, "Correct");
                       ^
office.c:120:27: warning: unused variable 'pont' [-Wunused-variable]
   int na1, nb1, na2, nb2, pont;
                           ^~~~
office.c: In function 'void _doInit()':
office.c:33:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d", &_N);
     ~~~~~^~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 3060 ms 384 KB Time limit exceeded
2 Execution timed out 3074 ms 384 KB Time limit exceeded
3 Execution timed out 3076 ms 384 KB Time limit exceeded
4 Execution timed out 3088 ms 384 KB Time limit exceeded
5 Execution timed out 3090 ms 384 KB Time limit exceeded
6 Execution timed out 3062 ms 384 KB Time limit exceeded
7 Execution timed out 3089 ms 384 KB Time limit exceeded
8 Execution timed out 3084 ms 384 KB Time limit exceeded
9 Execution timed out 3081 ms 384 KB Time limit exceeded
10 Execution timed out 3084 ms 384 KB Time limit exceeded
11 Execution timed out 3088 ms 384 KB Time limit exceeded
12 Execution timed out 3076 ms 384 KB Time limit exceeded
13 Execution timed out 3072 ms 384 KB Time limit exceeded
14 Execution timed out 3074 ms 384 KB Time limit exceeded
15 Execution timed out 3082 ms 384 KB Time limit exceeded
16 Execution timed out 3086 ms 384 KB Time limit exceeded
17 Execution timed out 3079 ms 384 KB Time limit exceeded
18 Execution timed out 3080 ms 384 KB Time limit exceeded
19 Execution timed out 3085 ms 512 KB Time limit exceeded
20 Execution timed out 3087 ms 512 KB Time limit exceeded
21 Execution timed out 3082 ms 768 KB Time limit exceeded
22 Execution timed out 3081 ms 768 KB Time limit exceeded
23 Execution timed out 3059 ms 1024 KB Time limit exceeded
24 Execution timed out 3086 ms 1024 KB Time limit exceeded
25 Execution timed out 3076 ms 1152 KB Time limit exceeded