Submission #425656

#TimeUsernameProblemLanguageResultExecution timeMemory
425656ngraceAliens (IOI16_aliens)C++14
4 / 100
2083 ms502232 KiB
#include "aliens.h" #include <vector> #include <iostream> #include <utility> #include <algorithm> using namespace std; #define v vector #define pii pair<int,int> #define fi first #define se second int N,K; v<int> pos; v<v<v<long long>>> memo; long long diagSolve(int l, int r, int k){ long long curArea=1; if(l!=r) curArea=(pos[r]-pos[l]+1) * (pos[r]-pos[l]+1); if(r==N-1){ return curArea; } if(k==K-1){ return (pos.back()-pos[l]+1) * (pos.back()-pos[l]+1); } if(memo[l][r][k]!=-1) return memo[l][r][k]; long long takePhoto = curArea+diagSolve(r+1,r+1,k+1); long long dont = diagSolve(l,r+1,k); return memo[l][r][k] = min(takePhoto, dont); } long long take_photos(int n, int m, int k, std::vector<int> r, std::vector<int> c) { bool subTwo=true; for(int i=0;i<n;i++){ if(r[i]!=c[i]) subTwo=false; } if(k==n && m<=100){//sub 1 v<v<bool>> squares(m,v<bool>(m,false)); for(int i=0;i<n;i++){ int low=min(r[i],c[i]); int high=max(r[i],c[i]); for(int a=low;a<=high;a++){ for(int b=low;b<=high;b++){ squares[a][b]=true; } } } long long out=0; for(int i=0;i<m;i++){ for(int j=0;j<m;j++){ out+=squares[i][j]; } } return out; } else if(subTwo){//assume sub 2 //as all along diagonal can do dp with n^3 K=k; N=n; for(int i:r) pos.push_back(i); sort(pos.begin(),pos.end()); memo=v<v<v<long long>>>(n+1,v<v<long long>>(n+1,v<long long>(k+1,-1))); return diagSolve(0,0,0); } }

Compilation message (stderr)

aliens.cpp: In function 'long long int take_photos(int, int, int, std::vector<int>, std::vector<int>)':
aliens.cpp:69:1: warning: control reaches end of non-void function [-Wreturn-type]
   69 | }
      | ^
#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...