제출 #1238743

#제출 시각아이디문제언어결과실행 시간메모리
1238743candi_ositosAliens (IOI16_aliens)C++20
4 / 100
0 ms328 KiB
#include "aliens.h" #include <bits/stdc++.h> using namespace std; long long take_photos(int n, int m, int k, vector<int> r, vector<int> c) { vector <vector <int> > ctl; for(int i=0; i<n; ++i){ if(r[i]>c[i]){ int aguss=c[i]; c[i]=r[i]; r[i]=aguss; } ctl.push_back({r[i], c[i]}); } sort(ctl.begin(), ctl.end()); vector <vector <int> > lf; int ms=-1; for(int i=0; i<n; ++i){ if(ms<ctl[i][0]){ ms=-1; } if(ctl[n-1][0]==ctl[i][0]){ i=n-1; } else{ for(int j=i; j<n-1; ++j){ if(ctl[j][0]>ctl[i][0]){ break; } i=j; } } if(ctl[i][1]>ms){ ms=ctl[i][1]; lf.push_back(ctl[i]); } } n=lf.size(); long long cost=0; long long tmm1=0; long long tmm2=0; tmm1=lf[0][1]+1-lf[0][0]; cost+=tmm1*tmm1; for(int i=1; i<n; ++i){ tmm1=lf[i][1]+1-lf[i][0]; cost+=tmm1*tmm1; if(lf[i-1][1]>=lf[i][0]){ tmm1=lf[i-1][1]-lf[i][0]+1; cost-=tmm1*tmm1; } } k-=n; while(k<0){ long long int mn=-1; int rw=-1; for(int i=1; i<n; ++i){ tmm1=lf[i][1]-lf[i-1][1]; tmm2=lf[i][0]-lf[i-1][0]; if(tmm1*tmm2<mn || mn==-1){ mn=2*tmm1*tmm2; rw=i; } } cost+=mn; if(rw==-1){ return -1; } lf[rw+1][0]=lf[rw][0]; lf.erase(lf.begin()+rw, lf.begin()+rw+1); ++k; --n; } return cost; }

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

aliens.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
aliens_c.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...