답안 #116829

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
116829 2019-06-14T02:01:22 Z ntrung03 Lozinke (COCI17_lozinke) C++17
15 / 100
1000 ms 3832 KB
#pragma GCC optimize("Ofast")
#include <stdio.h>
#include <string.h>
#include <set>
#include <utility>
using namespace std;
#define int long long
#define mod 1204755107
#define base 31
char s[20002][12];
int h[20002][12];
int p[12];
signed main() {
	int n;
	scanf("%lld\n",&n);
	p[0] = 1;
	for(int i=1;i<12;i++)p[i] = (p[i-1]*base)%mod;
	int res = 0;
	for(int i=0;i<n;i++) scanf("%s\n",s[i]);
	multiset<pair<int,int>> hashes;
	for(int i=0;i<n;i++)
	{
		int l = strlen(s[i]);
		for(int j=0;j<l;j++)
		{
			h[i][j] = (j>0?h[i][j-1]:0);
			h[i][j] = ((h[i][j]*base)%mod+s[i][j]-'a'+1)%mod;
		}
		hashes.insert({h[i][l-1],l});
	}
	for(int k =0;k<n;k++)
	{
		int l = strlen(s[k]);
		for(int i=0;i<l;i++)
		for(int j=i;j<l;j++){
			long long ph = h[k][j]-(i>0?h[k][i-1]*p[j-i+1]:0)%mod;
			res+=hashes.count({ph,j-i+1});
			if(i==0&&j==l-1) res-=1;
		}
	}
	printf("%lld",res);
}

Compilation message

lozinke.cpp: In function 'int main()':
lozinke.cpp:15:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%lld\n",&n);
  ~~~~~^~~~~~~~~~~~~
lozinke.cpp:19:28: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  for(int i=0;i<n;i++) scanf("%s\n",s[i]);
                       ~~~~~^~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 384 KB Output isn't correct
2 Incorrect 2 ms 256 KB Output isn't correct
3 Incorrect 2 ms 384 KB Output isn't correct
4 Incorrect 2 ms 384 KB Output isn't correct
5 Incorrect 4 ms 512 KB Output isn't correct
6 Incorrect 4 ms 512 KB Output isn't correct
7 Incorrect 7 ms 640 KB Output isn't correct
8 Correct 5 ms 640 KB Output is correct
9 Incorrect 218 ms 2048 KB Output isn't correct
10 Correct 31 ms 2048 KB Output is correct
11 Incorrect 475 ms 2816 KB Output isn't correct
12 Incorrect 53 ms 2816 KB Output isn't correct
13 Incorrect 65 ms 3712 KB Output isn't correct
14 Incorrect 225 ms 3832 KB Output isn't correct
15 Correct 66 ms 3712 KB Output is correct
16 Incorrect 71 ms 3712 KB Output isn't correct
17 Execution timed out 1076 ms 3712 KB Time limit exceeded
18 Execution timed out 1081 ms 3584 KB Time limit exceeded
19 Incorrect 83 ms 3712 KB Output isn't correct
20 Incorrect 956 ms 3704 KB Output isn't correct