Submission #316874

# Submission time Handle Problem Language Result Execution time Memory
316874 2020-10-28T11:31:51 Z ronnith Lozinke (COCI17_lozinke) C++14
50 / 100
1000 ms 1028 KB
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#warning Check Integer OverFlow
#define ll long long
#define rep(i,a,b) for(int i=a;i<b;i++)
#define maxs(a,b) if(b>a)a=b
#define mins(a,b) if(b<a)a=b
#define debug(x) cerr<<"["<<#x<<":"<<x<<"] "
#define debug2(a,b) debug(a);debug(b)
#define debug3(a,b,c) debug2(a,b);debug(c)
#define de cerr
#define gcd(a,b) __gcd(a,b)
#define lcm(a,b) (((a)/(__gcd(a,b))) * b)
#define print(arr) for(auto it = arr.begin();it < arr.end();it ++){cout << *it << " ";}cout << ln;
#define ordered_set tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update>
#define all(a) (a).begin(), (a).end()
#define vi vector<int>
#define v vector
#define p pair
#define pii p<int,int>
#define pb push_back
#define mk make_pair
#define f first
#define s second
#define ln "\n"
typedef long double ld;
using namespace std;
using namespace __gnu_pbds;
ll modF=1e9+7;

/*OUTPUT

*/

int N;
string a[20000];

bool cmp(string ax,string b){
	return ax.length() > b.length();
}

bool sub(int i,int j){
	int l1 = a[i].length();
	int l2 = a[j].length();
	for(int it = 0;it <= l1 - l2;it ++){
		bool pos = true;
		for(int k = it;k < it + l2;k ++){
			if(a[i][k] != a[j][k - it]){
				pos = false;
				break;
			}
		}
		if(pos){
			return true;
		}
	}
	return false;
}

void solve(){
	cin >> N;
	rep(i,0,N){
		cin >> a[i];
	}
	sort(a,a + N,cmp);
	// rep(i,0,N){
	// 	debug(a[i]);
	// }
	int ans = 0;
	rep(i,0,N){
		rep(j,i + 1,N){
			if(a[i] == a[j]){
				ans += 2;
			}
			else if(sub(i,j)){
				ans ++;
			}
		}
	}
	cout << ans << ln;
}

int main(){
	ios::sync_with_stdio(0);cin.tie(0);
	int t = 1;
	// cin >> t;
	while(t --){
		solve();
	}
}

Compilation message

lozinke.cpp:4:2: warning: #warning Check Integer OverFlow [-Wcpp]
    4 | #warning Check Integer OverFlow
      |  ^~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 896 KB Output is correct
2 Correct 1 ms 896 KB Output is correct
3 Correct 1 ms 896 KB Output is correct
4 Correct 2 ms 896 KB Output is correct
5 Correct 13 ms 1028 KB Output is correct
6 Correct 32 ms 896 KB Output is correct
7 Correct 40 ms 896 KB Output is correct
8 Correct 24 ms 1016 KB Output is correct
9 Execution timed out 1060 ms 1024 KB Time limit exceeded
10 Correct 611 ms 1008 KB Output is correct
11 Execution timed out 1086 ms 896 KB Time limit exceeded
12 Execution timed out 1029 ms 1024 KB Time limit exceeded
13 Execution timed out 1048 ms 1024 KB Time limit exceeded
14 Execution timed out 1045 ms 896 KB Time limit exceeded
15 Execution timed out 1063 ms 896 KB Time limit exceeded
16 Execution timed out 1085 ms 896 KB Time limit exceeded
17 Correct 847 ms 1016 KB Output is correct
18 Execution timed out 1083 ms 896 KB Time limit exceeded
19 Execution timed out 1089 ms 896 KB Time limit exceeded
20 Execution timed out 1093 ms 896 KB Time limit exceeded