답안 #164277

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
164277 2019-11-18T21:47:40 Z ivandasfs 고속도로 설계 (CEOI12_highway) C++14
0 / 100
1000 ms 1396 KB
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <vector>
#include <cstdlib>
#include <cassert>
#include "office.h"

using namespace std;

#define x first
#define y second
#define mp make_pair
#define pb push_back

typedef long long ll;

const ll MOD = 1e9+7;

vector <int> v;

int main() {
	int n = GetN();
	int x, y, z;
	bool done = false;
	for (x = 1 ; x<=5 ; x++) {
		for (y = x+1 ; y<=5 ; y++) {
			for (z = y+1 ; z<=5 ; z++) {
				if (isOnLine(x, y, z)) {
					done = true;
					break;
				}
			}
			if (done) break;
		}
		if (done) break;
	}
	for (int i=1 ; i<=n ; i++) {
		if ((x-i)*(y-i)*(z-i) == 0) continue;
		v.pb(i);
	}
	vector <int> sol;
	for (int i=0 ; i<v.size() ; i+=3) {
		if (i+3 >= v.size()) {
			if (isOnLine(x, y, v[i]) == 0) {
				sol.pb(v[i]);
			}
			i -= 2;
			if (sol.size() >= 2) break;
		} else {
			if (isOnLine(v[i], v[i+1], v[i+2])) {
				if (isOnLine(v[i], x, y) == 0) {
					sol.pb(v[i]);
					sol.pb(v[i+1]);
					break;
				}
			} else {
				assert(1 == 2);
				for (int j=0 ; j<3 ; j++) {
					assert(1 == 2);
					if (isOnLine(x, y, v[i+j]) == 0) {
						sol.pb(v[i+j]);
					}
					if (sol.size() >= 2) break;
				}
				if (sol.size() >= 2) break;
			}
		}
	}
	Answer(x, y, sol[0], sol[1]);
	return 0;
}

Compilation message

highway.cpp: In function 'int main()':
highway.cpp:43:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (int i=0 ; i<v.size() ; i+=3) {
                 ~^~~~~~~~~
highway.cpp:44:11: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   if (i+3 >= v.size()) {
       ~~~~^~~~~~~~~~~
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 1088 ms 376 KB Time limit exceeded
2 Execution timed out 1084 ms 256 KB Time limit exceeded
3 Execution timed out 1069 ms 376 KB Time limit exceeded
4 Execution timed out 1083 ms 256 KB Time limit exceeded
5 Execution timed out 1088 ms 256 KB Time limit exceeded
6 Execution timed out 1083 ms 376 KB Time limit exceeded
7 Execution timed out 1087 ms 256 KB Time limit exceeded
8 Execution timed out 1069 ms 376 KB Time limit exceeded
9 Execution timed out 1072 ms 256 KB Time limit exceeded
10 Execution timed out 1071 ms 256 KB Time limit exceeded
11 Execution timed out 1070 ms 376 KB Time limit exceeded
12 Execution timed out 1086 ms 376 KB Time limit exceeded
13 Execution timed out 1083 ms 380 KB Time limit exceeded
14 Execution timed out 1087 ms 376 KB Time limit exceeded
15 Execution timed out 1079 ms 376 KB Time limit exceeded
16 Execution timed out 1078 ms 376 KB Time limit exceeded
17 Execution timed out 1086 ms 376 KB Time limit exceeded
18 Execution timed out 1072 ms 376 KB Time limit exceeded
19 Execution timed out 1081 ms 632 KB Time limit exceeded
20 Execution timed out 1088 ms 760 KB Time limit exceeded
21 Execution timed out 1075 ms 888 KB Time limit exceeded
22 Execution timed out 1077 ms 888 KB Time limit exceeded
23 Execution timed out 1084 ms 1268 KB Time limit exceeded
24 Execution timed out 1089 ms 1268 KB Time limit exceeded
25 Execution timed out 1080 ms 1396 KB Time limit exceeded