Submission #302158

#TimeUsernameProblemLanguageResultExecution timeMemory
302158peti1234Rail (IOI14_rail)C++17
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> #include "rail.h" using namespace std; const int c=5002; int a[c], b[c], pos=1, js, bs, el, id, x, kt; vector<int> regi; vector<pair<int, int> > bal, jobb; int tav(int a, int b) {return getDistance(a, b);} void findl(int n, int first, int l[], int s[]) { for (int i=1; i<n; i++) { a[i]=tav(0, i); if (a[i]<a[pos]) pos=i; } l[0]=first, l[pos]=l[0]+a[pos], s[0]=1, s[pos]=2, kt=a[pos]; for (int i=1; i<n; i++) if (i!=pos) { b[i]=tav(pos, i); kt=min(kt, b[i]); } for (int i=1; i<n; i++) if (i!=pos) { if (a[i]+2*kt==b[i]+a[pos]) jobb.push_back({a[i], i}); else bal.push_back({b[i], i}); } sort(jobb.begin(), jobb.end()), sort(bal.begin(), bal.end()); js=jobb.size(), bs=bal.size(); if (js) { id=jobb[0].second, el=id; s[id]=2, l[id]=l[0]+a[id]; regi.push_back(id); for (int i=1; i<js; i++) { id=jobb[i].second, x=tav(el, id); bool jo=0; for (int i=0; i<regi.size(); i++) if (a[el]+x-2*(l[el]-l[regi[i]])==a[id]) jo=1; if (jo) s[id]=1, l[id]=l[el]-x; else s[id]=2, l[id]=l[0]+a[id], el=id, regi.push_back(id); } } regi.clear(); if (bs) { id=bal[0].second, el=id; s[id]=1, l[id]=l[pos]-b[id]; regi.push_back(id); for (int i=1; i<bs; i++) { id=bal[i].second, x=tav(el, id); bool jo=0; for (int i=0; i<regi.size(); i++) if (b[el]+x-2*(l[regi[i]]-l[el])==b[id]) jo=1; if (jo) s[id]=2, l[id]=l[el]+x; else s[id]=1, l[id]=l[pos]-b[id], el=id, regi.push_back(id); } } return; }

Compilation message (stderr)

rail.cpp: In function 'void findl(int, int, int*, int*)':
rail.cpp:32:28: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   32 |             for (int i=0; i<regi.size(); i++) if (a[el]+x-2*(l[el]-l[regi[i]])==a[id]) jo=1;
      |                           ~^~~~~~~~~~~~
rail.cpp:45:28: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   45 |             for (int i=0; i<regi.size(); i++) if (b[el]+x-2*(l[regi[i]]-l[el])==b[id]) jo=1;
      |                           ~^~~~~~~~~~~~
/tmp/ccHx8L6W.o: In function `main':
grader.cpp:(.text.startup+0x291): undefined reference to `findLocation'
collect2: error: ld returned 1 exit status