제출 #187216

#제출 시각아이디문제언어결과실행 시간메모리
187216PedroBigManRoller Coaster Railroad (IOI16_railroad)C++14
0 / 100
2016 ms57972 KiB
#include <iostream> #include <vector> #include <cmath> #include <algorithm> #include <string> #include <map> #include <set> #include <queue> #include <deque> #include "railroad.h" using namespace std; typedef long long int ll; typedef unsigned long long int ull; typedef long double ld; #define REP(i,a,b) for(ll i=a; i<b; i++) #define pb push_back #define mp make_pair #define pl pair<ll,ll> #define ff first #define ss second #define INF 10000000000LL ll insig; #define In(vecBRO, LENBRO) REP(IBRO,0,LENBRO) {cin>>insig; vecBRO.pb(insig);} void Out(vector<ll> x) {REP(i,0,x.size()) {cout<<x[i]<<" ";} cout<<endl;} void Expose(set<pl> x) { set<pl>::iterator it=x.begin(); REP(i,0,x.size()) {cout<<(*it).ff<<" "<<(*it).ss<<endl; it++;} } ll Check(set<pl> a, set<pl> b) { ll N=a.size(); vector<ll> p; REP(i,0,N) {p.pb(-1);} set<pl>::iterator it1,it2; it1=a.begin(); ll ind=0; while(it1!=a.end()) { pl val1=*it1; it2=lower_bound(b.begin(),b.end(),mp(val1.ff+1,-INF)); if(it2==b.begin()) {it1++; continue;} it2--; if((*it2).ss==val1.ss) { if(it2==b.begin()) {it1++; continue;} it2--; p[ind]=1LL; b.erase(it2); } it1++; ind++; } ll suma=0LL; ll sumb=0LL; it1=a.begin(); REP(i,0,N) { if(p[i]!=-1) {it1++;continue;} suma+=(*it1).ff; it1++; } it2=b.begin(); REP(i,0,b.size()) {sumb+=(*it2).ff; it2++;} return sumb-suma; } ll plan_roller_coaster(vector<int> sss, vector<int> ttt) { ll N=sss.size(); set<pl> s,t; REP(i,0,N) { s.insert(mp((ll) sss[i],i)); t.insert(mp((ll) ttt[i],i)); } set<pl>:: iterator it1,it2; it1=s.begin(); it2=t.end(); it2--; ll ans=INF; REP(rems,0,2) { REP(remt,0,2) { it1=s.begin(); it2=t.end(); REP(j,0,rems) {it1++;} REP(j,0,remt) {it2--;} it2--; pl rv1=*it1; pl rv2=*it2; if(rv1.ss!=rv2.ss) { s.erase(it1); t.erase(it2); ans=min(ans,Check(s,t)); t.insert(rv2); s.insert(rv1); } } } return ans; }

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

railroad.cpp: In function 'void Out(std::vector<long long int>)':
railroad.cpp:15:33: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
 #define REP(i,a,b) for(ll i=a; i<b; i++)
railroad.cpp:24:29:
 void Out(vector<ll> x) {REP(i,0,x.size()) {cout<<x[i]<<" ";} cout<<endl;}
                             ~~~~~~~~~~~~
railroad.cpp:24:25: note: in expansion of macro 'REP'
 void Out(vector<ll> x) {REP(i,0,x.size()) {cout<<x[i]<<" ";} cout<<endl;}
                         ^~~
railroad.cpp: In function 'void Expose(std::set<std::pair<long long int, long long int> >)':
railroad.cpp:15:33: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
 #define REP(i,a,b) for(ll i=a; i<b; i++)
railroad.cpp:28:9:
     REP(i,0,x.size()) {cout<<(*it).ff<<" "<<(*it).ss<<endl; it++;}
         ~~~~~~~~~~~~             
railroad.cpp:28:5: note: in expansion of macro 'REP'
     REP(i,0,x.size()) {cout<<(*it).ff<<" "<<(*it).ss<<endl; it++;}
     ^~~
railroad.cpp: In function 'll Check(std::set<std::pair<long long int, long long int> >, std::set<std::pair<long long int, long long int> >)':
railroad.cpp:15:33: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
 #define REP(i,a,b) for(ll i=a; i<b; i++)
railroad.cpp:61:9:
     REP(i,0,b.size()) {sumb+=(*it2).ff; it2++;}
         ~~~~~~~~~~~~             
railroad.cpp:61:5: note: in expansion of macro 'REP'
     REP(i,0,b.size()) {sumb+=(*it2).ff; it2++;}
     ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...