Submission #7582268
Source Code Expand
#include <bits/stdc++.h> #pragma GCC optimize("O3") #define REP(i,n) for(int i=0;i<n;i++) #define REPP(i,n) for(int i=1;i<=n;i++) #define ALL(obj) (obj).begin(), (obj).end() const double PI = acos(-1); const double EPS = 1e-15; long long INF=(long long)1E17; #define i_7 (long long)(1E9+7) long mod(long a){ long long c=a%i_7; if(c>=0)return c; return c+i_7; } using namespace std; bool prime_(int n){ if(n==1){ return false; }else if(n==2){ return true; }else{ for(int i=2;i<=sqrt(n);i++){ if(n%i==0){ return false; } } return true; } } long long gcd_(long long a, long long b){ if(a<b){ swap(a,b); } if(a%b==0){ return b; }else{ return gcd_(b,a%b); } } long long lcm_(long long x, long long y){ return (x/gcd_(x,y))*y; } int main(){ int n; cin>>n; int d[n][n]; REP(i,n){ REP(j,n){ cin>>d[i][j]; } } int dsum[n][n]; REP(i,n){ REP(j,n){ if(i==0 && j==0){ dsum[i][j] = d[i][j]; }else if(i==0){ dsum[i][j] = dsum[i][j-1] + d[i][j]; }else if(j==0){ dsum[i][j] = dsum[i-1][j] + d[i][j]; }else{ dsum[i][j] = dsum[i-1][j] + dsum[i][j-1] - dsum[i-1][j-1] + d[i][j]; } } } int max_area[n*n+1] = {}; int temp; int now; bool flag; REPP(s,n*n){ temp = 0; for(int a=1;a<=s;a++){ if(s%a != 0)continue; int b = s/a; flag = true; REP(i,n){ REP(j,n){ if(i+a-1 >=n){ flag = false; break; } if(j+b-1>=n)continue; if(i==0 && j==0){ now = dsum[i+a-1][j+b-1]; }else if(i==0){ now = dsum[i+a-1][j+b-1] - dsum[i+a-1][j-1]; }else if(j==0){ now = dsum[i+a-1][j+b-1] - dsum[i-1][j+b-1]; }else{ now = dsum[i+a-1][j+b-1] - dsum[i-1][j+b-1] - dsum[i+a-1][j-1] + dsum[i-1][j-1]; } temp = max(temp,now); } } } max_area[s] = max(max_area[s-1],temp); } int q; cin>>q; int p; REP(i,q){ cin>>p; cout<<max_area[p]<<endl; } return 0; }
Submission Info
Submission Time | |
---|---|
Task | D - おいしいたこ焼きの焼き方 |
User | ready_player074 |
Language | C++14 (GCC 5.4.1) |
Score | 100 |
Code Size | 2260 Byte |
Status | AC |
Exec Time | 43 ms |
Memory | 256 KB |
Judge Result
Set Name | Subtask1 | Subtask2 | ||||
---|---|---|---|---|---|---|
Score / Max Score | 50 / 50 | 50 / 50 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Subtask1 | sub0.txt, sub1.txt, sub2.txt, sub_rand_max0.txt, sub_rand_max1.txt, sub_rand_max2.txt, sub_rand_max3.txt, sub_rand_min0.txt, s1.txt, s2.txt, sub0.txt, sub1.txt, sub2.txt, sub_rand_max0.txt, sub_rand_max1.txt, sub_rand_max2.txt, sub_rand_max3.txt, sub_rand_min0.txt |
Subtask2 | rand0.txt, rand1.txt, rand2.txt, rand3.txt, rand4.txt, rand_max0.txt, rand_max1.txt, rand_max2.txt, rand_max3.txt, rand_max4.txt, s1.txt, s2.txt, sub0.txt, sub1.txt, sub2.txt, sub_rand_max0.txt, sub_rand_max1.txt, sub_rand_max2.txt, sub_rand_max3.txt, sub_rand_min0.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
rand0.txt | AC | 22 ms | 256 KB |
rand1.txt | AC | 14 ms | 256 KB |
rand2.txt | AC | 23 ms | 256 KB |
rand3.txt | AC | 5 ms | 256 KB |
rand4.txt | AC | 1 ms | 256 KB |
rand_max0.txt | AC | 42 ms | 256 KB |
rand_max1.txt | AC | 43 ms | 256 KB |
rand_max2.txt | AC | 43 ms | 256 KB |
rand_max3.txt | AC | 43 ms | 256 KB |
rand_max4.txt | AC | 43 ms | 256 KB |
s1.txt | AC | 1 ms | 256 KB |
s2.txt | AC | 1 ms | 256 KB |
sub0.txt | AC | 1 ms | 256 KB |
sub1.txt | AC | 1 ms | 256 KB |
sub2.txt | AC | 1 ms | 256 KB |
sub_rand_max0.txt | AC | 1 ms | 256 KB |
sub_rand_max1.txt | AC | 1 ms | 256 KB |
sub_rand_max2.txt | AC | 1 ms | 256 KB |
sub_rand_max3.txt | AC | 1 ms | 256 KB |
sub_rand_min0.txt | AC | 1 ms | 256 KB |