Submission #1370858


Source Code Expand

#include <bits/stdc++.h>
using namespace std;
#define repl(i,a,b) for(int i=(int)(a);i<(int)(b);i++)
#define rep(i,n) repl(i,0,n)
#define mp(a,b) make_pair((a),(b))
#define pb(a) push_back((a))
#define all(x) (x).begin(),(x).end()
#define uniq(x) sort(all(x)),(x).erase(unique(all(x)),end(x))
#define fi first
#define se second
#define dbg(...) _dbg(#__VA_ARGS__",", __VA_ARGS__)
void _dbg(string){cout<<endl;}
template<class H,class... T> void _dbg(string s,H h,T... t){int l=s.find(',');cout<<s.substr(0,l)<<" = "<<h<<", ";_dbg(s.substr(l+1),t...);}
template<class T,class U> ostream& operator<<(ostream& o, const pair<T,U> &p){o<<"("<<p.fi<<","<<p.se<<")";return o;}
template<class T> ostream& operator<<(ostream& o, const vector<T> &v){o<<"[";for(T t:v){o<<t<<",";}o<<"]";return o;}

#define INF 1120000000

long vec[2600][2600];

inline void tri(int x, int y, int d, int v){
  x += 1010; y += 1010;
  vec[x][y] += v;
  vec[x+1][y-1] -= v;
  vec[x][y+d] -= v;
  vec[x+1][y+d] += v;
  vec[x+d+1][y] -= v;
  vec[x+d+1][y-1] += v;
}

inline void hex(int x, int y, int d, int v){
  tri(x-d+1, y-d+1, 3*d-2, v);
  tri(x-d+1, y-d+1, d-1, -v);
  tri(x-d+1, y+d, d-1, -v);
  tri(x+d, y-d+1, d-1, -v);
}

int main(){
  fill(vec[0], vec[2600], 0);
  int n;
  cin>>n;
  rep(i,n){
    int t,x,y,s;
    cin>>t>>x>>y>>s;
    if(t==1){
      hex(x,y,s,1);
    } else if(t==2){
      rep(j,s){
        hex(x,y,j+1,1);
      }
    } else if(t==3){
      rep(j,s){
        hex(x,y,s-j,2*j+1);
      }
    } else assert(false);
  }

  // imos
  for(int i=1; i<2600; i++){
    for(int j=2598; j>=0; j--)
      vec[i][j] += vec[i-1][j+1];
  }
  for(int i=1; i<2600; i++){
    for(int j=0; j<2600; j++)
      vec[i][j] += vec[i-1][j];
  }
  for(int i=0; i<2600; i++){
    for(int j=1; j<2600; j++)
      vec[i][j] += vec[i][j-1];
  }

  // for(int i=1000; i<=1020; i++){
  //   for(int j=1000; j<=1020; j++) cout<<vec[i][j]<<" ";
  //   cout << endl;
  // }

  long ans = 0;
  rep(i,2600)rep(j,2600) ans = max(ans, vec[i][j]);

  cout << ans << endl;

  return 0;
}

Submission Info

Submission Time
Task I - その味は甘くて
User tossy
Language C++14 (GCC 5.4.1)
Score 150
Code Size 2131 Byte
Status AC
Exec Time 136 ms
Memory 53120 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 52 ms 52992 KB
large1/case_001.txt AC 52 ms 52992 KB
large1/case_002.txt AC 52 ms 53120 KB
large1/case_003.txt AC 52 ms 53120 KB
large1/case_004.txt AC 52 ms 53120 KB
large1/case_005.txt AC 52 ms 52992 KB
large1/case_006.txt AC 52 ms 53120 KB
large1/case_007.txt AC 52 ms 53120 KB
large1/case_008.txt AC 52 ms 52992 KB
large1/case_009.txt AC 52 ms 52992 KB
large1/case_010.txt AC 52 ms 52992 KB
large1/case_011.txt AC 53 ms 53120 KB
large1/case_012.txt AC 52 ms 52992 KB
large1/case_013.txt AC 53 ms 53120 KB
large1/case_014.txt AC 52 ms 52992 KB
large1/case_015.txt AC 52 ms 53120 KB
large1/case_024.txt AC 52 ms 52992 KB
large1/case_025.txt AC 52 ms 53120 KB
large1/case_026.txt AC 52 ms 53120 KB
large1/case_027.txt AC 52 ms 52992 KB
large1/large1_case_000.txt AC 63 ms 52992 KB
large1/large1_case_001.txt AC 63 ms 53120 KB
large1/large1_case_002.txt AC 63 ms 52992 KB
large1/large1_case_003.txt AC 63 ms 52992 KB
large1/large1_case_004.txt AC 64 ms 53120 KB
large1/large1_case_005.txt AC 64 ms 52992 KB
large1/large1_case_006.txt AC 63 ms 52992 KB
large1/large1_case_007.txt AC 63 ms 52992 KB
large1/large1_case_008.txt AC 63 ms 52992 KB
large1/large1_case_009.txt AC 64 ms 52992 KB
large1/large1_case_010.txt AC 63 ms 53120 KB
large1/large1_case_011.txt AC 63 ms 53120 KB
large1/large1_case_012.txt AC 63 ms 52992 KB
large1/large1_case_013.txt AC 63 ms 52992 KB
large1/large1_case_014.txt AC 63 ms 52992 KB
large1/large1_case_020.txt AC 63 ms 53120 KB
large1/large1_case_021.txt AC 62 ms 53120 KB
large1/large1_case_022.txt AC 62 ms 53120 KB
large1/large1_case_023.txt AC 62 ms 52992 KB
large3/case_000.txt AC 52 ms 53120 KB
large3/case_001.txt AC 52 ms 53120 KB
large3/case_002.txt AC 52 ms 52992 KB
large3/case_003.txt AC 52 ms 52992 KB
large3/case_004.txt AC 52 ms 53120 KB
large3/case_005.txt AC 52 ms 52992 KB
large3/case_006.txt AC 52 ms 52992 KB
large3/case_007.txt AC 52 ms 52992 KB
large3/case_008.txt AC 52 ms 53120 KB
large3/case_009.txt AC 52 ms 53120 KB
large3/case_010.txt AC 52 ms 52992 KB
large3/case_011.txt AC 52 ms 53120 KB
large3/case_012.txt AC 52 ms 52992 KB
large3/case_013.txt AC 52 ms 53120 KB
large3/case_014.txt AC 52 ms 53120 KB
large3/case_015.txt AC 52 ms 52992 KB
large3/case_024.txt AC 52 ms 52992 KB
large3/case_025.txt AC 52 ms 52992 KB
large3/case_026.txt AC 52 ms 53120 KB
large3/case_027.txt AC 52 ms 52992 KB
large3/large1_case_000.txt AC 64 ms 53120 KB
large3/large1_case_001.txt AC 63 ms 53120 KB
large3/large1_case_002.txt AC 63 ms 52992 KB
large3/large1_case_003.txt AC 63 ms 53120 KB
large3/large1_case_004.txt AC 63 ms 52992 KB
large3/large1_case_005.txt AC 63 ms 52992 KB
large3/large1_case_006.txt AC 63 ms 52992 KB
large3/large1_case_007.txt AC 63 ms 52992 KB
large3/large1_case_008.txt AC 63 ms 52992 KB
large3/large1_case_009.txt AC 63 ms 53120 KB
large3/large1_case_010.txt AC 63 ms 52992 KB
large3/large1_case_011.txt AC 63 ms 53120 KB
large3/large1_case_012.txt AC 63 ms 53120 KB
large3/large1_case_013.txt AC 63 ms 52992 KB
large3/large1_case_014.txt AC 63 ms 52992 KB
large3/large1_case_020.txt AC 63 ms 53120 KB
large3/large1_case_021.txt AC 63 ms 52992 KB
large3/large1_case_022.txt AC 62 ms 53120 KB
large3/large1_case_023.txt AC 62 ms 53120 KB
large3/large3_case_000.txt AC 127 ms 52992 KB
large3/large3_case_001.txt AC 125 ms 53120 KB
large3/large3_case_002.txt AC 126 ms 53120 KB
large3/large3_case_003.txt AC 125 ms 53120 KB
large3/large3_case_004.txt AC 124 ms 52992 KB
large3/large3_case_005.txt AC 135 ms 52992 KB
large3/large3_case_006.txt AC 126 ms 52992 KB
large3/large3_case_007.txt AC 126 ms 53120 KB
large3/large3_case_008.txt AC 136 ms 52992 KB
large3/large3_case_009.txt AC 125 ms 52992 KB
large3/large3_case_010.txt AC 125 ms 52992 KB
large3/large3_case_011.txt AC 129 ms 53120 KB
large3/large3_case_012.txt AC 130 ms 52992 KB
large3/large3_case_013.txt AC 123 ms 53120 KB
large3/large3_case_014.txt AC 133 ms 53120 KB
large3/large3_case_015.txt AC 127 ms 52992 KB
large3/large3_case_016.txt AC 125 ms 52992 KB
large3/large3_case_017.txt AC 126 ms 52992 KB
large3/large3_case_018.txt AC 126 ms 53120 KB
large3/large3_case_019.txt AC 126 ms 52992 KB
large3/large3_case_020.txt AC 123 ms 52992 KB
large3/large3_case_021.txt AC 121 ms 53120 KB
large3/large3_case_022.txt AC 121 ms 52992 KB
large3/large3_case_023.txt AC 121 ms 52992 KB
small/case_000.txt AC 52 ms 52992 KB
small/case_001.txt AC 52 ms 52992 KB
small/case_002.txt AC 52 ms 53120 KB
small/case_003.txt AC 52 ms 52992 KB
small/case_004.txt AC 52 ms 53120 KB
small/case_005.txt AC 52 ms 52992 KB
small/case_006.txt AC 52 ms 53120 KB
small/case_007.txt AC 52 ms 53120 KB
small/case_008.txt AC 52 ms 52992 KB
small/case_009.txt AC 52 ms 53120 KB
small/case_010.txt AC 52 ms 52992 KB
small/case_011.txt AC 52 ms 52992 KB
small/case_012.txt AC 52 ms 53120 KB
small/case_013.txt AC 52 ms 53120 KB
small/case_014.txt AC 52 ms 52992 KB
small/case_015.txt AC 52 ms 53120 KB
small/case_024.txt AC 52 ms 53120 KB
small/case_025.txt AC 52 ms 53120 KB
small/case_026.txt AC 52 ms 52992 KB
small/case_027.txt AC 52 ms 52992 KB