답안 #515774

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
515774 2022-01-19T16:00:26 Z LouayFarah Lozinke (COCI17_lozinke) C++14
40 / 100
1000 ms 1992 KB
#include "bits/stdc++.h"

using namespace std;

#define ll long long int
#define pb push_back
#define mp make_pair
#define fi first
#define se second

const long long MOD = 998244353;
const long long INF = 1e18;

int nx[4] = {0, 0, -1, 1};
int ny[4] = {1, -1, 0, 0};

ll my_rand(ll l, ll r)
{
    srand(chrono::steady_clock::now().time_since_epoch().count());
    ll len = r-l;
    ll a = rand()%len;
    ll b = rand()%len;

    ll res = ((((a%len)*((RAND_MAX+1)%len))%len) + (b%len))%len;

    if(res<l)
        res +=l;

    return res;
}

bool substring(string sub, string s)
{
    for(int i = 0; i+int(sub.length())-1<int(s.length()); i++)
    {
        bool flag = true;
        for(int j = 0; j<int(sub.length()); j++)
        {
            if(sub[j]!=s[i+j])
            {
                flag = false;
                break;
            }
        }

        if(flag)
            return true;
    }

    return false;
}

bool compare(string &a, string &b)
{
    int lena = int(a.length());
    int lenb = int(b.length());

    if(lena==lenb)
        return a<=b;
    return lena<lenb;
}

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);


    ll n;
    cin >> n;

    vector<string> arr;
    for(int i = 0; i<n; i++)
    {
        string s;
        cin >> s;

        arr.pb(s);
    }

    sort(arr.begin(), arr.end(), compare);


    ll res = 0;
    for(int i = 0; i<n; i++)
    {
        for(int j = i+1; j<n; j++)
        {
            if(substring(arr[i], arr[j]))
                res++;
            if(substring(arr[j], arr[i]))
                res++;
        }
    }

    cout << res << endl;

    return 0;
}

Compilation message

lozinke.cpp: In function 'long long int my_rand(long long int, long long int)':
lozinke.cpp:24:35: warning: integer overflow in expression of type 'int' results in '-2147483648' [-Woverflow]
   24 |     ll res = ((((a%len)*((RAND_MAX+1)%len))%len) + (b%len))%len;
      |                                   ^
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 204 KB Output is correct
2 Correct 0 ms 204 KB Output is correct
3 Correct 1 ms 204 KB Output is correct
4 Correct 6 ms 332 KB Output is correct
5 Correct 28 ms 452 KB Output is correct
6 Correct 57 ms 332 KB Output is correct
7 Correct 92 ms 420 KB Output is correct
8 Correct 83 ms 420 KB Output is correct
9 Runtime error 4 ms 1356 KB Execution killed with signal 11
10 Execution timed out 1084 ms 976 KB Time limit exceeded
11 Runtime error 6 ms 1612 KB Execution killed with signal 11
12 Execution timed out 1085 ms 976 KB Time limit exceeded
13 Execution timed out 1076 ms 1484 KB Time limit exceeded
14 Runtime error 7 ms 1992 KB Execution killed with signal 11
15 Execution timed out 1090 ms 1484 KB Time limit exceeded
16 Runtime error 11 ms 1992 KB Execution killed with signal 11
17 Runtime error 3 ms 1992 KB Execution killed with signal 11
18 Runtime error 6 ms 1924 KB Execution killed with signal 11
19 Execution timed out 1087 ms 1484 KB Time limit exceeded
20 Runtime error 12 ms 1988 KB Execution killed with signal 11