Submission #65810

# Submission time Handle Problem Language Result Execution time Memory
65810 2018-08-09T00:05:33 Z ho94949 Languages (IOI10_languages) C++17
66 / 100
603 ms 9336 KB
    #include <stdlib.h>
    #include <stdio.h>
    #include <map>
    using namespace std;
     
    #include "grader.h"
    #include "lang.h"
     
     
    #define SZ 100
    #define LANG 56
     
    int A[LANG][65536];
    int appear[LANG];
     
    void excerpt(int *E) {
    	double langcnt[LANG];
    	for(int i=0;i<LANG;i++) langcnt[i]=0;
    	for(int i=0;i<SZ-1;i++){
    		unsigned int triplet=((E[i]*53)+E[i+1])&65535;
    		for(int j=0;j<LANG;j++){
    			int v = A[j][triplet];
                langcnt[j] += (double)v/(appear[LANG]+1);
    		}
    	}
    	double max=0;
    	int maxi=0;
    	for(int i=0;i<LANG;i++){
    		if(max<langcnt[i]){
    			max=langcnt[i];
    			maxi=i;
    		}
    	}
    	int res=language(maxi);
    	appear[res]++;
    	for(int i=0;i<SZ-1;i++){
    		unsigned int triplet=((E[i]*53)+E[i+1])&65535;
    		A[res][triplet]=A[res][triplet]+1;
    	}
    	return;
    }

Compilation message

lang.cpp: In function 'void excerpt(int*)':
lang.cpp:23:53: warning: array subscript is above array bounds [-Warray-bounds]
                 langcnt[j] += (double)v/(appear[LANG]+1);
                                          ~~~~~~~~~~~^
# Verdict Execution time Memory Grader output
1 Correct 603 ms 9336 KB Output is correct
# Verdict Execution time Memory Grader output
1 Partially correct 504 ms 9336 KB Output is partially correct - 61.49%