Submission #292031

# Submission time Handle Problem Language Result Execution time Memory
292031 2020-09-06T08:26:28 Z Diuven Express 20/19 (ROI19_express) C++17
Compilation error
0 ms 0 KB
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <string>
#include <cmath>
#include <cassert>
#include <ctime>
#include <vector>
#include <set>
#include <map>
#include <unordered_set>
#include <unordered_map>

using namespace std;

#define pb push_back
#define mp make_pair
#define fs first
#define sc second

const int size = 1000 * 1000;

int n, m, q;
long long p;

int tc;
long long* dists[size];
int len[size];
vector <pair <int, long long> > vertex[size];

int main () {
//    freopen("input.txt", "r", stdin);
//    freopen("output.txt", "w", stdout);
    
    scanf("%d", &tc);

    for (int tnum = 0; tnum < tc; tnum++) {
        scanf("%d%d%d%lld", &n, &m, &q, &p);

        for (int i = 0; i < m; i++) {
            int u, v;
            long long t;
            scanf("%d%d%lld", &u, &v, &t);
            vertex[v - 1].pb(mp(u - 1, t));
        }

        len[0] = 1;
        dists[0] = new long long[1];
        dists[0][0] = 0ll;
        for (int i = 1; i < n; i++) {
            int total = 0;
            for (int j = 0; j < (int) vertex[i].size(); j++) {
                total += len[vertex[i][j].fs];
            }        
            dists[i] = new long long[total];
            int cur = 0;
            for (int j = 0; j < (int) vertex[i].size(); j++) {
                int tg = vertex[i][j].fs;
                int curlen = len[tg];
                long long toadd = vertex[i][j].sc;
                for (int h = 0; h < curlen; h++) {
                    dists[i][cur++] = dists[tg][h] + toadd;
                }                
            }
            len[i] = cur;
            sort(dists[i], dists[i] + len[i]);

            len[i] = unique(dists[i], dists[i] + len[i]) - dists[i];
        }

        for (int i = 0; i < q; i++) {
            int tg;
            long long tlen;
            scanf("%d%lld", &tg, &tlen);
            tg--;

            int it = lower_bound(dists[tg], dists[tg] + len[tg], tlen) - dists[tg];
            if (it < len[tg] && dists[tg][it] <= tlen * p / (p - 1)) {
                printf("1");
            } else {
                printf("0");
            }
        }

        for (int i = 0; i < n; i++) {
            delete [] dists[i];
            vertex[i].clear();
        }

        printf("\n");
    }

    return 0;
}

Compilation message

main.cpp:29:18: error: reference to 'size' is ambiguous
   29 | long long* dists[size];
      |                  ^~~~
In file included from /usr/include/c++/9/string:54,
                 from /usr/include/c++/9/bits/locale_classes.h:40,
                 from /usr/include/c++/9/bits/ios_base.h:41,
                 from /usr/include/c++/9/ios:42,
                 from /usr/include/c++/9/ostream:38,
                 from /usr/include/c++/9/iostream:39,
                 from main.cpp:3:
/usr/include/c++/9/bits/range_access.h:252:5: note: candidates are: 'template<class _Tp, long unsigned int _Nm> constexpr std::size_t std::size(const _Tp (&)[_Nm])'
  252 |     size(const _Tp (&/*__array*/)[_Nm]) noexcept
      |     ^~~~
/usr/include/c++/9/bits/range_access.h:242:5: note:                 'template<class _Container> constexpr decltype (__cont.size()) std::size(const _Container&)'
  242 |     size(const _Container& __cont) noexcept(noexcept(__cont.size()))
      |     ^~~~
main.cpp:23:11: note:                 'const int size'
   23 | const int size = 1000 * 1000;
      |           ^~~~
main.cpp:30:9: error: reference to 'size' is ambiguous
   30 | int len[size];
      |         ^~~~
In file included from /usr/include/c++/9/string:54,
                 from /usr/include/c++/9/bits/locale_classes.h:40,
                 from /usr/include/c++/9/bits/ios_base.h:41,
                 from /usr/include/c++/9/ios:42,
                 from /usr/include/c++/9/ostream:38,
                 from /usr/include/c++/9/iostream:39,
                 from main.cpp:3:
/usr/include/c++/9/bits/range_access.h:252:5: note: candidates are: 'template<class _Tp, long unsigned int _Nm> constexpr std::size_t std::size(const _Tp (&)[_Nm])'
  252 |     size(const _Tp (&/*__array*/)[_Nm]) noexcept
      |     ^~~~
/usr/include/c++/9/bits/range_access.h:242:5: note:                 'template<class _Container> constexpr decltype (__cont.size()) std::size(const _Container&)'
  242 |     size(const _Container& __cont) noexcept(noexcept(__cont.size()))
      |     ^~~~
main.cpp:23:11: note:                 'const int size'
   23 | const int size = 1000 * 1000;
      |           ^~~~
main.cpp:31:40: error: reference to 'size' is ambiguous
   31 | vector <pair <int, long long> > vertex[size];
      |                                        ^~~~
In file included from /usr/include/c++/9/string:54,
                 from /usr/include/c++/9/bits/locale_classes.h:40,
                 from /usr/include/c++/9/bits/ios_base.h:41,
                 from /usr/include/c++/9/ios:42,
                 from /usr/include/c++/9/ostream:38,
                 from /usr/include/c++/9/iostream:39,
                 from main.cpp:3:
/usr/include/c++/9/bits/range_access.h:252:5: note: candidates are: 'template<class _Tp, long unsigned int _Nm> constexpr std::size_t std::size(const _Tp (&)[_Nm])'
  252 |     size(const _Tp (&/*__array*/)[_Nm]) noexcept
      |     ^~~~
/usr/include/c++/9/bits/range_access.h:242:5: note:                 'template<class _Container> constexpr decltype (__cont.size()) std::size(const _Container&)'
  242 |     size(const _Container& __cont) noexcept(noexcept(__cont.size()))
      |     ^~~~
main.cpp:23:11: note:                 'const int size'
   23 | const int size = 1000 * 1000;
      |           ^~~~
main.cpp: In function 'int main()':
main.cpp:46:13: error: 'vertex' was not declared in this scope
   46 |             vertex[v - 1].pb(mp(u - 1, t));
      |             ^~~~~~
main.cpp:49:9: error: 'len' was not declared in this scope
   49 |         len[0] = 1;
      |         ^~~
main.cpp:50:9: error: 'dists' was not declared in this scope
   50 |         dists[0] = new long long[1];
      |         ^~~~~
main.cpp:54:39: error: 'vertex' was not declared in this scope
   54 |             for (int j = 0; j < (int) vertex[i].size(); j++) {
      |                                       ^~~~~~
main.cpp:59:39: error: 'vertex' was not declared in this scope
   59 |             for (int j = 0; j < (int) vertex[i].size(); j++) {
      |                                       ^~~~~~
main.cpp:89:13: error: 'vertex' was not declared in this scope
   89 |             vertex[i].clear();
      |             ^~~~~~
main.cpp:37:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   37 |     scanf("%d", &tc);
      |     ~~~~~^~~~~~~~~~~
main.cpp:40:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   40 |         scanf("%d%d%d%lld", &n, &m, &q, &p);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.cpp:45:18: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   45 |             scanf("%d%d%lld", &u, &v, &t);
      |             ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
main.cpp:76:18: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   76 |             scanf("%d%lld", &tg, &tlen);
      |             ~~~~~^~~~~~~~~~~~~~~~~~~~~~