Submission #661553


Source Code Expand

#include<bits/stdc++.h>
using namespace std;

#define int long long
typedef pair<int,int>pint;
typedef vector<int>vint;
typedef vector<pint>vpint;
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define all(v) (v).begin(),(v).end()
#define rep(i,n) for(int i=0;i<(n);i++)
#define reps(i,f,n) for(int i=(f);i<(n);i++)
#define each(it,v) for(__typeof((v).begin()) it=(v).begin();it!=(v).end();it++)
template<class T,class U>inline void chmin(T &t,U f){if(t>f)t=f;}
template<class T,class U>inline void chmax(T &t,U f){if(t<f)t=f;}


const int MAX=2010;
int sum[MAX][MAX];
int val[MAX][MAX];
const int SIZE=10000;
int N;
int t[SIZE],x[SIZE],y[SIZE],s[SIZE];

signed main(){
    cin>>N;
    rep(i,N){
        cin>>t[i]>>x[i]>>y[i]>>s[i];x[i]*=-1;
        x[i]+=1000;y[i]+=1000;
    }


    reps(type,1,3+1){
        memset(sum,0,sizeof(sum));
        rep(k,N){
            if(t[k]!=type)continue;
            rep(i,s[k]){
                if(type==1){
                    sum[y[k]-i][x[k]-s[k]+1]++;
                    sum[y[k]-i][x[k]+s[k]-i]--;
                }
                else if(type==2){
                    sum[y[k]-i][x[k]-s[k]+1]++;
                    sum[y[k]-i][x[k]+1-i]--;
                    sum[y[k]-i][x[k]+1]-=s[k]-i;
                    sum[y[k]-i][x[k]+2]+=s[k]-i;
                }
                else{
                    sum[y[k]-i][x[k]-s[k]+1]++;
                    sum[y[k]-i][x[k]-s[k]+2]++;
                    sum[y[k]-i][x[k]+1-i]-=2+(s[k]-i)*2-1;
                    sum[y[k]-i][x[k]+2-i]+=(s[k]-i)*2-1;
                    sum[y[k]-i][x[k]+1]-=(s[k]-i)*(s[k]-i);
                    sum[y[k]-i][x[k]+2]+=(s[k]-i)*(s[k]-i)*2;
                    sum[y[k]-i][x[k]+3]-=(s[k]-i)*(s[k]-i);
                }
            }
            reps(i,1,s[k]){
                if(type==1){
                    sum[y[k]+i][x[k]-s[k]+1+i]++;
                    sum[y[k]+i][x[k]+s[k]]--;
                }
                else if(type==2){
                    sum[y[k]+i][x[k]-s[k]+1+i]++;
                    sum[y[k]+i][x[k]+1]--;
                    sum[y[k]+i][x[k]+1+i]-=s[k]-i;
                    sum[y[k]+i][x[k]+2+i]+=s[k]-i;
                }
                else{
                    sum[y[k]+i][x[k]-s[k]+1+i]++;
                    sum[y[k]+i][x[k]-s[k]+2+i]++;
                    sum[y[k]+i][x[k]+1]-=2+(s[k]-i)*2-1;
                    sum[y[k]+i][x[k]+2]+=(s[k]-i)*2-1;
                    sum[y[k]+i][x[k]+1+i]-=(s[k]-i)*(s[k]-i);
                    sum[y[k]+i][x[k]+2+i]+=(s[k]-i)*(s[k]-i)*2;
                    sum[y[k]+i][x[k]+3+i]-=(s[k]-i)*(s[k]-i);
                }
            }
        }
        rep(k,type)rep(i,MAX)rep(j,MAX-1)sum[i][j+1]+=sum[i][j];
        rep(i,MAX)rep(j,MAX)val[i][j]+=sum[i][j];

        memset(sum,0,sizeof(sum));
        rep(k,N){
            if(t[k]!=type)continue;
            rep(i,s[k]){
                if(type==1){
                    //nothing
                }
                else if(type==2){
                    sum[y[k]-i][x[k]+s[k]-1-i]++;
                    sum[y[k]-i][x[k]]-=1+s[k]-1-i;
                    sum[y[k]-i][x[k]-1]+=s[k]-1-i;
                }
                else{
                    sum[y[k]-i][x[k]+s[k]-1-i]++;
                    sum[y[k]-i][x[k]+s[k]-2-i]++;
                    sum[y[k]-i][x[k]]-=2+(s[k]-1-i)*2-1+(s[k]-1-i)*(s[k]-1-i);
                    sum[y[k]-i][x[k]-1]+=(s[k]-1-i)*2-1+(s[k]-1-i)*(s[k]-1-i)*2;
                    sum[y[k]-i][x[k]-2]-=(s[k]-1-i)*(s[k]-1-i);
                }
            }
            reps(i,1,s[k]){
                if(type==1){
                    //nothing
                }
                else if(type==2){
                    sum[y[k]+i][x[k]+s[k]-1]++;
                    sum[y[k]+i][x[k]+i]-=1+s[k]-1-i;
                    sum[y[k]+i][x[k]+i-1]+=s[k]-1-i;
                }
                else{
                    sum[y[k]+i][x[k]+s[k]-1]++;
                    sum[y[k]+i][x[k]+s[k]-2]++;
                    sum[y[k]+i][x[k]+i]-=2+(s[k]-1-i)*2-1+(s[k]-1-i)*(s[k]-1-i);
                    sum[y[k]+i][x[k]-1+i]+=(s[k]-1-i)*2-1+(s[k]-1-i)*(s[k]-1-i)*2;
                    sum[y[k]+i][x[k]-2+i]-=(s[k]-1-i)*(s[k]-1-i);
                }
            }
        }
        rep(k,type)rep(i,MAX)for(int j=MAX-1;j>0;j--)sum[i][j-1]+=sum[i][j];
        rep(i,MAX)rep(j,MAX)val[i][j]+=sum[i][j];
    }
/*
    reps(i,995,1006){
        reps(j,995,1006){
            cout<<val[i][j]<<" ";
        }cout<<endl;
    }
*/
    int ma=0;
    rep(i,MAX)rep(j,MAX)chmax(ma,val[i][j]);
    cout<<ma<<endl;
    return 0;
}

Submission Info

Submission Time
Task I - その味は甘くて
User latte0119
Language C++ (G++ 4.6.4)
Score 150
Code Size 4733 Byte
Status AC
Exec Time 756 ms
Memory 65644 KB

Judge Result

Set Name small large1 large3
Score / Max Score 10 / 10 40 / 40 100 / 100
Status
AC × 20
AC × 39
AC × 63
Set Name Test Cases
small small/case_000.txt, small/case_001.txt, small/case_002.txt, small/case_003.txt, small/case_004.txt, small/case_005.txt, small/case_006.txt, small/case_007.txt, small/case_008.txt, small/case_009.txt, small/case_010.txt, small/case_011.txt, small/case_012.txt, small/case_013.txt, small/case_014.txt, small/case_015.txt, small/case_024.txt, small/case_025.txt, small/case_026.txt, small/case_027.txt
large1 large1/case_000.txt, large1/case_001.txt, large1/case_002.txt, large1/case_003.txt, large1/case_004.txt, large1/case_005.txt, large1/case_006.txt, large1/case_007.txt, large1/case_008.txt, large1/case_009.txt, large1/case_010.txt, large1/case_011.txt, large1/case_012.txt, large1/case_013.txt, large1/case_014.txt, large1/case_015.txt, large1/case_024.txt, large1/case_025.txt, large1/case_026.txt, large1/case_027.txt, large1/large1_case_000.txt, large1/large1_case_001.txt, large1/large1_case_002.txt, large1/large1_case_003.txt, large1/large1_case_004.txt, large1/large1_case_005.txt, large1/large1_case_006.txt, large1/large1_case_007.txt, large1/large1_case_008.txt, large1/large1_case_009.txt, large1/large1_case_010.txt, large1/large1_case_011.txt, large1/large1_case_012.txt, large1/large1_case_013.txt, large1/large1_case_014.txt, large1/large1_case_020.txt, large1/large1_case_021.txt, large1/large1_case_022.txt, large1/large1_case_023.txt
large3 large3/case_000.txt, large3/case_001.txt, large3/case_002.txt, large3/case_003.txt, large3/case_004.txt, large3/case_005.txt, large3/case_006.txt, large3/case_007.txt, large3/case_008.txt, large3/case_009.txt, large3/case_010.txt, large3/case_011.txt, large3/case_012.txt, large3/case_013.txt, large3/case_014.txt, large3/case_015.txt, large3/case_024.txt, large3/case_025.txt, large3/case_026.txt, large3/case_027.txt, large3/large1_case_000.txt, large3/large1_case_001.txt, large3/large1_case_002.txt, large3/large1_case_003.txt, large3/large1_case_004.txt, large3/large1_case_005.txt, large3/large1_case_006.txt, large3/large1_case_007.txt, large3/large1_case_008.txt, large3/large1_case_009.txt, large3/large1_case_010.txt, large3/large1_case_011.txt, large3/large1_case_012.txt, large3/large1_case_013.txt, large3/large1_case_014.txt, large3/large1_case_020.txt, large3/large1_case_021.txt, large3/large1_case_022.txt, large3/large1_case_023.txt, large3/large3_case_000.txt, large3/large3_case_001.txt, large3/large3_case_002.txt, large3/large3_case_003.txt, large3/large3_case_004.txt, large3/large3_case_005.txt, large3/large3_case_006.txt, large3/large3_case_007.txt, large3/large3_case_008.txt, large3/large3_case_009.txt, large3/large3_case_010.txt, large3/large3_case_011.txt, large3/large3_case_012.txt, large3/large3_case_013.txt, large3/large3_case_014.txt, large3/large3_case_015.txt, large3/large3_case_016.txt, large3/large3_case_017.txt, large3/large3_case_018.txt, large3/large3_case_019.txt, large3/large3_case_020.txt, large3/large3_case_021.txt, large3/large3_case_022.txt, large3/large3_case_023.txt
Case Name Status Exec Time Memory
large1/case_000.txt AC 419 ms 65236 KB
large1/case_001.txt AC 402 ms 65228 KB
large1/case_002.txt AC 403 ms 65168 KB
large1/case_003.txt AC 404 ms 65228 KB
large1/case_004.txt AC 417 ms 65232 KB
large1/case_005.txt AC 414 ms 65236 KB
large1/case_006.txt AC 416 ms 65244 KB
large1/case_007.txt AC 421 ms 65228 KB
large1/case_008.txt AC 415 ms 65236 KB
large1/case_009.txt AC 415 ms 65232 KB
large1/case_010.txt AC 413 ms 65236 KB
large1/case_011.txt AC 415 ms 65228 KB
large1/case_012.txt AC 416 ms 65232 KB
large1/case_013.txt AC 417 ms 65232 KB
large1/case_014.txt AC 416 ms 65356 KB
large1/case_015.txt AC 415 ms 65236 KB
large1/case_024.txt AC 414 ms 65240 KB
large1/case_025.txt AC 412 ms 65248 KB
large1/case_026.txt AC 415 ms 65232 KB
large1/case_027.txt AC 413 ms 65236 KB
large1/large1_case_000.txt AC 600 ms 65492 KB
large1/large1_case_001.txt AC 601 ms 65480 KB
large1/large1_case_002.txt AC 603 ms 65500 KB
large1/large1_case_003.txt AC 598 ms 65488 KB
large1/large1_case_004.txt AC 601 ms 65492 KB
large1/large1_case_005.txt AC 595 ms 65480 KB
large1/large1_case_006.txt AC 601 ms 65488 KB
large1/large1_case_007.txt AC 601 ms 65500 KB
large1/large1_case_008.txt AC 593 ms 65488 KB
large1/large1_case_009.txt AC 598 ms 65472 KB
large1/large1_case_010.txt AC 601 ms 65612 KB
large1/large1_case_011.txt AC 625 ms 65496 KB
large1/large1_case_012.txt AC 597 ms 65476 KB
large1/large1_case_013.txt AC 603 ms 65644 KB
large1/large1_case_014.txt AC 606 ms 65580 KB
large1/large1_case_020.txt AC 584 ms 65616 KB
large1/large1_case_021.txt AC 581 ms 65616 KB
large1/large1_case_022.txt AC 584 ms 65484 KB
large1/large1_case_023.txt AC 588 ms 65616 KB
large3/case_000.txt AC 417 ms 65304 KB
large3/case_001.txt AC 417 ms 65220 KB
large3/case_002.txt AC 423 ms 65236 KB
large3/case_003.txt AC 418 ms 65228 KB
large3/case_004.txt AC 416 ms 65228 KB
large3/case_005.txt AC 413 ms 65232 KB
large3/case_006.txt AC 407 ms 65232 KB
large3/case_007.txt AC 409 ms 65228 KB
large3/case_008.txt AC 414 ms 65164 KB
large3/case_009.txt AC 419 ms 65228 KB
large3/case_010.txt AC 405 ms 65232 KB
large3/case_011.txt AC 407 ms 65268 KB
large3/case_012.txt AC 409 ms 65220 KB
large3/case_013.txt AC 405 ms 65228 KB
large3/case_014.txt AC 416 ms 65224 KB
large3/case_015.txt AC 416 ms 65232 KB
large3/case_024.txt AC 420 ms 65232 KB
large3/case_025.txt AC 413 ms 65232 KB
large3/case_026.txt AC 414 ms 65228 KB
large3/case_027.txt AC 415 ms 65224 KB
large3/large1_case_000.txt AC 601 ms 65520 KB
large3/large1_case_001.txt AC 604 ms 65612 KB
large3/large1_case_002.txt AC 605 ms 65480 KB
large3/large1_case_003.txt AC 595 ms 65484 KB
large3/large1_case_004.txt AC 603 ms 65468 KB
large3/large1_case_005.txt AC 607 ms 65480 KB
large3/large1_case_006.txt AC 604 ms 65488 KB
large3/large1_case_007.txt AC 599 ms 65484 KB
large3/large1_case_008.txt AC 603 ms 65484 KB
large3/large1_case_009.txt AC 596 ms 65484 KB
large3/large1_case_010.txt AC 596 ms 65516 KB
large3/large1_case_011.txt AC 601 ms 65612 KB
large3/large1_case_012.txt AC 605 ms 65484 KB
large3/large1_case_013.txt AC 621 ms 65484 KB
large3/large1_case_014.txt AC 606 ms 65484 KB
large3/large1_case_020.txt AC 589 ms 65480 KB
large3/large1_case_021.txt AC 587 ms 65488 KB
large3/large1_case_022.txt AC 578 ms 65480 KB
large3/large1_case_023.txt AC 574 ms 65612 KB
large3/large3_case_000.txt AC 745 ms 65616 KB
large3/large3_case_001.txt AC 751 ms 65480 KB
large3/large3_case_002.txt AC 756 ms 65480 KB
large3/large3_case_003.txt AC 741 ms 65620 KB
large3/large3_case_004.txt AC 744 ms 65484 KB
large3/large3_case_005.txt AC 741 ms 65484 KB
large3/large3_case_006.txt AC 748 ms 65480 KB
large3/large3_case_007.txt AC 745 ms 65484 KB
large3/large3_case_008.txt AC 752 ms 65492 KB
large3/large3_case_009.txt AC 736 ms 65528 KB
large3/large3_case_010.txt AC 740 ms 65608 KB
large3/large3_case_011.txt AC 753 ms 65484 KB
large3/large3_case_012.txt AC 749 ms 65608 KB
large3/large3_case_013.txt AC 741 ms 65488 KB
large3/large3_case_014.txt AC 738 ms 65524 KB
large3/large3_case_015.txt AC 735 ms 65480 KB
large3/large3_case_016.txt AC 733 ms 65608 KB
large3/large3_case_017.txt AC 741 ms 65488 KB
large3/large3_case_018.txt AC 749 ms 65488 KB
large3/large3_case_019.txt AC 747 ms 65604 KB
large3/large3_case_020.txt AC 718 ms 65524 KB
large3/large3_case_021.txt AC 721 ms 65616 KB
large3/large3_case_022.txt AC 707 ms 65484 KB
large3/large3_case_023.txt AC 725 ms 65464 KB
small/case_000.txt AC 415 ms 65224 KB
small/case_001.txt AC 413 ms 65356 KB
small/case_002.txt AC 415 ms 65240 KB
small/case_003.txt AC 413 ms 65228 KB
small/case_004.txt AC 415 ms 65164 KB
small/case_005.txt AC 414 ms 65232 KB
small/case_006.txt AC 412 ms 65232 KB
small/case_007.txt AC 404 ms 65232 KB
small/case_008.txt AC 403 ms 65236 KB
small/case_009.txt AC 405 ms 65220 KB
small/case_010.txt AC 404 ms 65228 KB
small/case_011.txt AC 415 ms 65224 KB
small/case_012.txt AC 402 ms 65224 KB
small/case_013.txt AC 415 ms 65228 KB
small/case_014.txt AC 414 ms 65236 KB
small/case_015.txt AC 405 ms 65228 KB
small/case_024.txt AC 404 ms 65232 KB
small/case_025.txt AC 405 ms 65236 KB
small/case_026.txt AC 416 ms 65232 KB
small/case_027.txt AC 412 ms 65228 KB