답안 #554687

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
554687 2022-04-29T07:38:42 Z new_acc Lozinke (COCI17_lozinke) C++14
85 / 100
152 ms 41144 KB
#include<bits/stdc++.h>
#define fi first
#define se second
#define pitem item*
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef vector<int> vi;
typedef vector<ll> vl;
const int N=1e6+10;
const int SS=1<<19;
const int INFi=2e9;
const ll INFl=1e13;
const ll mod=998244353;
const ll mod2=1e9+7;
const ll mod3=1000696969;
const ll p=70032301;
const ull p2=913;
const int L=20;
int t[N];
string s[N];
unordered_map<ll,int> m;
unordered_map<ll,bool> m2;
void solve(){
	int n;
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>s[i];
		ll akth=0;
		for(int j=0;j<s[i].size();j++) akth=(akth*p+s[i][j])%mod;
		m[akth]++;
	}
	ll res=0;
	for(int i=1;i<=n;i++){
		for(int j=0;j<s[i].size();j++){
			ll akth=0;
			for(int k=j;k<s[i].size();k++){
				akth=(akth*p+s[i][k])%mod;
				if(m2[akth]) continue;
				res+=m[akth];
				m2[akth]=1;
			}
		}
		m2.clear();
		res--;
	}
	cout<<res<<"\n";
}
int main(){
	ios_base::sync_with_stdio(0),cin.tie(0);
	solve();
}

Compilation message

lozinke.cpp: In function 'void solve()':
lozinke.cpp:30:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   30 |   for(int j=0;j<s[i].size();j++) akth=(akth*p+s[i][j])%mod;
      |               ~^~~~~~~~~~~~
lozinke.cpp:35:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   35 |   for(int j=0;j<s[i].size();j++){
      |               ~^~~~~~~~~~~~
lozinke.cpp:37:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   37 |    for(int k=j;k<s[i].size();k++){
      |                ~^~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 20 ms 31572 KB Output is correct
2 Correct 20 ms 31572 KB Output is correct
3 Correct 20 ms 31572 KB Output is correct
4 Correct 17 ms 31572 KB Output is correct
5 Correct 19 ms 31712 KB Output is correct
6 Correct 22 ms 31720 KB Output is correct
7 Correct 22 ms 32212 KB Output is correct
8 Correct 23 ms 32748 KB Output is correct
9 Correct 36 ms 32800 KB Output is correct
10 Correct 60 ms 36372 KB Output is correct
11 Correct 50 ms 33844 KB Output is correct
12 Incorrect 152 ms 41044 KB Output isn't correct
13 Correct 76 ms 32712 KB Output is correct
14 Incorrect 87 ms 41088 KB Output isn't correct
15 Incorrect 141 ms 41144 KB Output isn't correct
16 Correct 78 ms 31712 KB Output is correct
17 Correct 56 ms 31584 KB Output is correct
18 Correct 45 ms 31572 KB Output is correct
19 Correct 82 ms 36312 KB Output is correct
20 Correct 49 ms 31700 KB Output is correct