답안 #125352

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
125352 2019-07-05T06:39:20 Z figter001 고속도로 설계 (CEOI12_highway) C++17
컴파일 오류
0 ms 0 KB
#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;
}

Compilation message

highway.cpp: In function 'int main()':
highway.cpp:39:10: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result]
   freopen("input.txt","r",stdin);
   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
highway.cpp:106:7: warning: 'b' may be used uninitialized in this function [-Wmaybe-uninitialized]
   res = isOnLine(a,b,y);
   ~~~~^~~~~~~~~~~~~~~~~
highway.cpp:106:7: warning: 'a' may be used uninitialized in this function [-Wmaybe-uninitialized]
highway.cpp:106:7: warning: 'y' may be used uninitialized in this function [-Wmaybe-uninitialized]
highway.cpp:101:7: warning: 'x' may be used uninitialized in this function [-Wmaybe-uninitialized]
   res = isOnLine(a,b,x);
   ~~~~^~~~~~~~~~~~~~~~~
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);
     ~~~~~^~~~~~~~~~~
/tmp/cczX7TCI.o: In function `GetN()':
office.c:(.text+0x130): multiple definition of `GetN()'
/tmp/ccQRAzcZ.o:highway.cpp:(.text+0x0): first defined here
/tmp/cczX7TCI.o: In function `isOnLine(int, int, int)':
office.c:(.text+0x1d0): multiple definition of `isOnLine(int, int, int)'
/tmp/ccQRAzcZ.o:highway.cpp:(.text+0x10): first defined here
/tmp/cczX7TCI.o: In function `Answer(int, int, int, int)':
office.c:(.text+0x3c0): multiple definition of `Answer(int, int, int, int)'
/tmp/ccQRAzcZ.o:highway.cpp:(.text+0xe0): first defined here
collect2: error: ld returned 1 exit status