Submission #2776

# Submission time Handle Problem Language Result Execution time Memory
2776 2013-07-31T09:45:48 Z kk1401 속이기 (GA5_fake) C++
0 / 100
0 ms 20656 KB
#include<stdio.h>

int n,d[1001],cnt[1001],ans,chk[1000001];

struct data
{
    int x,y;
}; data dy[1001][1001],cost[1001][1001];

void input()
{
    int i;
    scanf("%d",&n);
    for(i=1; i<=n; i++) scanf("%d",&d[i]);
}

int maxval(int a,int b)
{
    return a>b?a:b;
}

void process()
{
    int i,j;
    dy[1][++cnt[1]].x=cost[1][1].x=d[1];
    dy[1][cnt[1]].y=-1; cost[1][1].y=0;
    
    for(i=2; i<=n; i++){
        for(j=1; j<=cnt[i-1]; j++){
            //x에 넣는경우
            if(chk[dy[i-1][j].x^d[i]] != i){
                dy[i][++cnt[i]].x = dy[i-1][j].x^d[i];
                dy[i][cnt[i]].y = dy[i-1][j].y;
                cost[i][cnt[i]].y = cost[i-1][j].y;
                cost[i][cnt[i]].x = cost[i-1][j].x + d[i];
                chk[dy[i-1][j].x^d[i]]=i;
            }
            if(chk[dy[i-1][j].x] != i){
                //y에 넣는경우
                if(dy[i-1][j].y==-1) dy[i][++cnt[i]].y = d[i];
                else dy[i][++cnt[i]].y = dy[i-1][j].y^d[i];
                dy[i][cnt[i]].x = dy[i-1][j].x;
                cost[i][cnt[i]].y = cost[i-1][j].y + d[i];
                cost[i][cnt[i]].x = cost[i-1][j].x;
                chk[dy[i-1][j].x]=i;
            }
        }
    }
    for(i=1; i<=cnt[n]; i++) if(dy[n][i].x==dy[n][i].y) ans=maxval(ans,maxval(cost[n][i].x,cost[n][i].y));
}

void output()
{
    printf("%d\n",ans);
}
int main()
{
    input();
    process();
    output();
    return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 20656 KB Output is correct
2 Correct 0 ms 20656 KB Output is correct
3 Correct 0 ms 20656 KB Output is correct
4 Correct 0 ms 20656 KB Output is correct
5 Runtime error 0 ms 20652 KB SIGSEGV Segmentation fault
6 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 20656 KB Output is correct
2 Incorrect 0 ms 20656 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 20656 KB Output is correct
2 Incorrect 0 ms 20656 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 0 ms 20652 KB SIGSEGV Segmentation fault
2 Halted 0 ms 0 KB -