제출 #74551

#제출 시각아이디문제언어결과실행 시간메모리
74551ZZangZZangLozinke (COCI17_lozinke)C++17
100 / 100
682 ms17172 KiB
#include <cstdio>
#include <vector>
#include <algorithm>
#include <queue>
#include <cstring>
#include <functional>
#include <string>
#include <set>
#include <map>
 
typedef long long ll;
using namespace std;
 
ll n, sol = 0;
string s[20001];
map<string, ll> ms;
 
int main()
{
	scanf("%lld", &n);
	for(ll i=0; i<n; i++)
	{
		char str[20]; scanf("%s", str);
		s[i] = string(str);
        if(ms.find(s[i]) == ms.end()) ms.insert(make_pair(s[i], 1));
        else ms[s[i]]++;
	}
	for(ll k=0; k<n; k++)
	{
		set<string> l;
		vector<string> v;
		for(ll i=0; i<s[k].size(); i++)
		{
			string tmp;
			for(ll j=i; j<s[k].size(); j++)
			{
				tmp += s[k][j];
				if(l.find(tmp) == l.end()) l.insert(tmp), v.push_back(tmp);
			}
		}
		for(ll i=0; i<v.size(); i++)
		{
			if(v[i] == s[k]) sol += (ll)(ms[v[i]] - 1);
			else sol += (ll)(ms[v[i]]);
		}
	}
	printf("%lld", sol);
	return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

lozinke.cpp: In function 'int main()':
lozinke.cpp:32:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(ll i=0; i<s[k].size(); i++)
               ~^~~~~~~~~~~~
lozinke.cpp:35:17: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    for(ll j=i; j<s[k].size(); j++)
                ~^~~~~~~~~~~~
lozinke.cpp:41:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(ll i=0; i<v.size(); i++)
               ~^~~~~~~~~
lozinke.cpp:20:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%lld", &n);
  ~~~~~^~~~~~~~~~~~
lozinke.cpp:23:22: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   char str[20]; scanf("%s", str);
                 ~~~~~^~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...