답안 #75467

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
75467 2018-09-09T20:51:56 Z Vasiljko 보물 찾기 (CEOI13_treasure2) C++14
100 / 100
2 ms 676 KB
#include "treasure.h"
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
const ll MOD = 1e9+7;
const int N = 105;

int a[N][N];

int sum(int i,int j){return a[i][j]-a[i-1][j]-a[i][j-1]+a[i-1][j-1];}

void findTreasure(int N){
    int m=N/2;

    for(int i=N;i>=1;i--){
        for(int j=N;j>=1;j--){
            if(i<=m&&j<=m){
                a[i][j]=a[N][j]+a[i][N]-a[N][N]+countTreasure(i+1,j+1,N,N);
            }else if(i<=m&&j>m){
                a[i][j]=a[N][j]-countTreasure(i+1,1,N,j);
            }else if(i>m&&j<=m){
                a[i][j]=a[i][N]-countTreasure(1,j+1,i,N);
            }else{//i>m && j>m
                a[i][j]=countTreasure(1,1,i,j);
            }
        }
    }

    for(int i=1;i<=N;i++){
        for(int j=1;j<=N;j++){
            if(sum(i,j)==1)Report(i,j);
        }
    }
}

# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 376 KB Output is correct - N = 5, K = 289, score = 10
2 Correct 2 ms 500 KB Output is correct - N = 10, K = 4475, score = 10
3 Correct 2 ms 500 KB Output is correct - N = 15, K = 22289, score = 10
4 Correct 2 ms 500 KB Output is correct - N = 16, K = 28928, score = 10
5 Correct 2 ms 500 KB Output is correct - N = 55, K = 4005289, score = 10
6 Correct 2 ms 500 KB Output is correct - N = 66, K = 8305803, score = 10
7 Correct 2 ms 616 KB Output is correct - N = 77, K = 15383161, score = 10
8 Correct 2 ms 676 KB Output is correct - N = 88, K = 26244416, score = 10
9 Correct 2 ms 676 KB Output is correct - N = 99, K = 42032201, score = 10
10 Correct 2 ms 676 KB Output is correct - N = 100, K = 43760000, score = 10