Submission #116825

#TimeUsernameProblemLanguageResultExecution timeMemory
116825LichtLozinke (COCI17_lozinke)C++14
100 / 100
480 ms16608 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define vt vector
#define pb push_back
#define pob pop_back
#define vi vt<int>
#define vvi vt<vi>
#define vii vt<ii>
#define vvii vt<vii>
typedef long long ll;
#define For(i,a,b) for(int i = a; i < b; i++)
#define foR(i,a,b) for(int i = a; i <= b; i++)
#define roF(i,a,b) for(int i = a - 1; i >= b; i--)
#define Rof(i,a,b) for(int i = a; i >= b; i--)

vector<string> v;
map<string,int> dx;
map<string,bool> dc;

bool cmp(string a, string b){
	return a.size() < b.size();
}

signed main (){
	/*
	freopen(".inp","r",stdin);
	freopen(".out","w",stdout);
	*/
	int n, coun = 0; cin >> n;
	string t;
	For(i,0,n){
		cin >> t;
		v.pb(t);
	}
	sort(v.begin(),v.end(),cmp);
	For(i,0,n){
//		cout << v[i] << "\n";
		dc.clear();
		//nc
		For(j,0,v[i].size()){
			string temp;
			For(k,j,v[i].size()){
				temp += v[i][k];
				if((!dc[temp]) && dx[temp]){
					dc[temp] = true;
					coun+=dx[temp];
				}
			}
		}
		coun+=dx[v[i]];
		dx[v[i]]++;
//		cout << coun << "\n";
	}
	cout << coun;
}

Compilation message (stderr)

lozinke.cpp: In function 'int main()':
lozinke.cpp:12:37: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
 #define For(i,a,b) for(int i = a; i < b; i++)
lozinke.cpp:41:7:
   For(j,0,v[i].size()){
       ~~~~~~~~~~~~~~~                
lozinke.cpp:41:3: note: in expansion of macro 'For'
   For(j,0,v[i].size()){
   ^~~
lozinke.cpp:12:37: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
 #define For(i,a,b) for(int i = a; i < b; i++)
lozinke.cpp:43:8:
    For(k,j,v[i].size()){
        ~~~~~~~~~~~~~~~               
lozinke.cpp:43:4: note: in expansion of macro 'For'
    For(k,j,v[i].size()){
    ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...