제출 #962288

#제출 시각아이디문제언어결과실행 시간메모리
962288steveonalex철로 (IOI14_rail)C++17
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h> #include "rail.h" using namespace std; typedef long long ll; typedef unsigned long long ull; #define ALL(v) (v).begin(), (v).end() #define MASK(i) (1LL << (i)) #define GETBIT(mask, i) (((mask) >> (i)) & 1) // mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count()); mt19937_64 rng(1); ll rngesus(ll l, ll r){return ((ull) rng()) % (r - l + 1) + l;} ll max(ll a, ll b){return (a > b) ? a : b;} ll min(ll a, ll b){return (a < b) ? a : b;} ll LASTBIT(ll mask){return mask & (-mask);} ll pop_cnt(ll mask){return __builtin_popcountll(mask);} ll ctz(ll mask){return __builtin_ctzll(mask);} ll clz(ll mask){return __builtin_clzll(mask);} ll logOf(ll mask){return 63 - clz(mask);} template <class T1, class T2> bool minimize(T1 &a, T2 b){ if (a > b){a = b; return true;} return false; } template <class T1, class T2> bool maximize(T1 &a, T2 b){ if (a < b){a = b; return true;} return false; } template <class T> void printArr(T& a, string separator = " ", string finish = "\n"){ for(auto i: a) cout << i << separator; cout << finish; } template <class T> void remove_dup(vector<T> &a){ sort(ALL(a)); a.resize(unique(ALL(a)) - a.begin()); } int getDistance(int i, int j){ cout << "? " << i << " " << j << endl; int verdict; cin >> verdict; return verdict; } void findLocation(int n, int first, int location[], int stype[]){ memset(location, 0, sizeof location); memset(stype, 0, sizeof stype); location[0] = first; stype[0] = 1; vector<int> from_0(n), to_0(n); pair<int, int> ma = {-1, -1}; for(int i = 1; i<n; ++i){ from_0[i] = getDistance(0, i); to_0[i] = getDistance(i, 0); if (from_0[i] == to_0[i]) { location[i] = first + from_0[i]; stype[i] = 2; maximize(ma, make_pair(location[i], i)); } } if (ma.second == -1) exit(-1); int r = ma.second; vector<int> fromR(n); fromR[0]= to_0[r]; for(int i = 1; i<n; ++i) if (stype[i] == 0) { fromR[i] = getDistance(r, i); stype[i] = 1; location[i] = location[r] - fromR[i]; } } // int main(void){ // ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); // int n = // int location[ // return 0; // }

컴파일 시 표준 에러 (stderr) 메시지

rail.cpp: In function 'void findLocation(int, int, int*, int*)':
rail.cpp:54:32: warning: 'sizeof' on array function parameter 'location' will return size of 'int*' [-Wsizeof-array-argument]
   54 |     memset(location, 0, sizeof location); memset(stype, 0, sizeof stype);
      |                                ^~~~~~~~
rail.cpp:53:41: note: declared here
   53 | void findLocation(int n, int first, int location[], int stype[]){
      |                                     ~~~~^~~~~~~~~~
rail.cpp:54:25: warning: argument to 'sizeof' in 'void* memset(void*, int, size_t)' call is the same expression as the destination; did you mean to dereference it? [-Wsizeof-pointer-memaccess]
   54 |     memset(location, 0, sizeof location); memset(stype, 0, sizeof stype);
      |                         ^~~~~~~~~~~~~~~
rail.cpp:54:67: warning: 'sizeof' on array function parameter 'stype' will return size of 'int*' [-Wsizeof-array-argument]
   54 |     memset(location, 0, sizeof location); memset(stype, 0, sizeof stype);
      |                                                                   ^~~~~
rail.cpp:53:57: note: declared here
   53 | void findLocation(int n, int first, int location[], int stype[]){
      |                                                     ~~~~^~~~~~~
rail.cpp:54:60: warning: argument to 'sizeof' in 'void* memset(void*, int, size_t)' call is the same expression as the destination; did you mean to dereference it? [-Wsizeof-pointer-memaccess]
   54 |     memset(location, 0, sizeof location); memset(stype, 0, sizeof stype);
      |                                                            ^~~~~~~~~~~~
/usr/bin/ld: /tmp/cctbLPBq.o: in function `getDistance':
grader.cpp:(.text+0x0): multiple definition of `getDistance'; /tmp/ccYIQaAr.o:rail.cpp:(.text+0x90): first defined here
collect2: error: ld returned 1 exit status