Cod sursa(job #590168)

Utilizator mihai93Palaga Mihai mihai93 Data 15 mai 2011 18:44:43
Problema Oo Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include<stdio.h> #include<vector> int N; int A[100100]; int B[100100]; int a; int MAX; #define B (B + 10) void solve(int a,int b) { for(int i=1;i<=N;i++) B[i] = 0; int c; if(b == N) B[N] += A[1]; for(int i=a;i<=b;i++) B[i] += A[i+1]+A[i]; c = 0; for(int i=a;i<=b;i++) { if(c<B[i-3]) c = B[i-3]; B[i] = B[i] + c; } for(int i=b-3;i<=b;i++) if(c<B[i]) c = B[i]; if(MAX<c) MAX = c; } int main() { FILE *f = fopen("oo.in","r"); FILE *g = fopen("oo.out","w"); fscanf(f,"%d ",&N); for(int i=1;i<=N;i++) fscanf(f,"%d ",&A[i]); solve(1,N-2); solve(2,N-1); solve(3,N); fprintf(g,"%d ",MAX); fclose(g); fclose(f); return 0; }