제출 #94560

#제출 시각아이디문제언어결과실행 시간메모리
94560thebesLozinke (COCI17_lozinke)C++14
100 / 100
243 ms16184 KiB
#include <bits/stdc++.h>
using namespace std;

const int MN = 2e4+5;
string s[MN];
unordered_map<string,int> mp, w;
unordered_set<string> st;
int n, i, ans, j, k;

int main(){
    for(scanf("%d",&n),i=1;i<=n;i++)
        cin >> s[i];
    sort(s+1,s+n+1,[](string i,string j){return i.size()>j.size();});
    for(i=1;i<=n;i++){
        ans += mp[s[i]]+w[s[i]];
        st.clear();
        w[s[i]]++;
        for(j=0;j<s[i].size();j++){
            string sub = "";
            for(k=j;k<s[i].size();k++){
                sub += s[i][k];
                if(!st.count(sub)){
                    st.insert(sub);
                    mp[sub]++;
                }
            }
        }
    }
    printf("%d\n",ans);
    return 0;
}

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

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