Submission #198167

#TimeUsernameProblemLanguageResultExecution timeMemory
198167model_codeCheap flights (LMIO18_pigus_skrydziai)C++14
100 / 100
1586 ms63060 KiB
#include <cstdio> #include <cstdint> #include <utility> #include <algorithm> #include <map> using namespace std; const int64_t MAX_N = 300000 + 100; map<pair<int64_t, int64_t>, int64_t> briaunos; pair<int,int64_t> sunkiausi[MAX_N][2]; int64_t zvaigzde[MAX_N]; void AtnaujintiSunkiausius(int v, int w, int64_t svoris) { if (sunkiausi[v][0].second < svoris) { sunkiausi[v][1] = sunkiausi[v][0]; sunkiausi[v][0] = make_pair(w, svoris); } else if (sunkiausi[v][1].second < svoris) { sunkiausi[v][1] = make_pair(w, svoris); } } int main() { int N, M; scanf("%d%d", &N, &M); for (int i = 0; i < N; ++i) { sunkiausi[i][0] = make_pair(-1, -1); sunkiausi[i][1] = make_pair(-1, -1); zvaigzde[i] = 0; } for (int j = 0; j < M; ++j) { int a, b, svoris; scanf("%d%d%d", &a, &b, &svoris); AtnaujintiSunkiausius(a - 1, b - 1, svoris); AtnaujintiSunkiausius(b - 1, a - 1, svoris); zvaigzde[a - 1] += (int64_t) svoris; zvaigzde[b - 1] += (int64_t) svoris; briaunos[make_pair(a - 1, b - 1)] = (int64_t) svoris; briaunos[make_pair(b - 1, a - 1)] = (int64_t) svoris; } int64_t atsakymas = 0; for (int i = 0; i < N; ++i) { if (zvaigzde[i] > atsakymas) atsakymas = zvaigzde[i]; if (sunkiausi[i][1].first != -1) { map<pair<int64_t, int64_t>, int64_t>::iterator it = briaunos.find(make_pair(sunkiausi[i][0].first, sunkiausi[i][1].first)); if (it != briaunos.end()) { int64_t trikampis = sunkiausi[i][0].second + sunkiausi[i][1].second + it->second; if (trikampis > atsakymas) atsakymas = trikampis; } } } printf("%lld\n", atsakymas); return 0; }

Compilation message (stderr)

pigus_skrydziai.cpp: In function 'int main()':
pigus_skrydziai.cpp:61:31: warning: format '%lld' expects argument of type 'long long int', but argument 2 has type 'int64_t {aka long int}' [-Wformat=]
     printf("%lld\n", atsakymas);
                               ^
pigus_skrydziai.cpp:29:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d%d", &N, &M);
     ~~~~~^~~~~~~~~~~~~~~~
pigus_skrydziai.cpp:38:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d%d%d", &a, &b, &svoris);
         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...