# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
718928 | Karuk | Towns (IOI15_towns) | C++14 | Compilation error | 0 ms | 0 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "towns.h"
#include<bits/stdc++.h>
using namespace std;
map<int,int>m;
long long getD(int x,int y) {
if(m[{x,y}]!=0)return m[{x,y}];
else m[{x,y}]=m[{y,x}]=getDistance(x,y);
return m[{x,y}];
}
long long getmindist(int f,int s,int t) {
long long d1=getD(f,s);
long long d2=getD(s,t);
long long d3=getD(f,t);
long long dd=(d1+d2-d3)/2;
long long d=(d1+d3-d2)/2;
long long ddd=(d2+d3-d1)/2;
return max(max(d,dd),ddd);
}
int hubDistance(int n,int sub) {
int maxd=0,maxind=0;
int md=0;
for(int i=1;i<n;i++) {
int p=getD(0,i);
if(maxd<p) {
maxd=p;
maxind=i;
}
}
md=maxind;
maxd=0;
maxind=0;
for(int i=1;i<n;i++) {
int p=getD(md,i);
if(maxd<p) {
maxd=p;
maxind=i;
}
}
long long minr=1e12;
for(int i=0;i<n;i++) {
if(i==md || i==maxind)continue;
minr=min(minr,getmindist(i,md,maxind));
}
return minr;
}
Compilation message (stderr)
towns.cpp: In function 'long long int getD(int, int)': towns.cpp:6:9: error: no match for 'operator[]' (operand types are 'std::map<int, int>' and '<brace-enclosed initializer list>') 6 | if(m[{x,y}]!=0)return m[{x,y}]; | ^ In file included from /usr/include/c++/10/map:61, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:81, from towns.cpp:2: /usr/include/c++/10/bits/stl_map.h:492:7: note: candidate: 'std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type& std::map<_Key, _Tp, _Compare, _Alloc>::operator[](const key_type&) [with _Key = int; _Tp = int; _Compare = std::less<int>; _Alloc = std::allocator<std::pair<const int, int> >; std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type = int; std::map<_Key, _Tp, _Compare, _Alloc>::key_type = int]' 492 | operator[](const key_type& __k) | ^~~~~~~~ /usr/include/c++/10/bits/stl_map.h:492:34: note: no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const key_type&' {aka 'const int&'} 492 | operator[](const key_type& __k) | ~~~~~~~~~~~~~~~~^~~ /usr/include/c++/10/bits/stl_map.h:512:7: note: candidate: 'std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type& std::map<_Key, _Tp, _Compare, _Alloc>::operator[](std::map<_Key, _Tp, _Compare, _Alloc>::key_type&&) [with _Key = int; _Tp = int; _Compare = std::less<int>; _Alloc = std::allocator<std::pair<const int, int> >; std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type = int; std::map<_Key, _Tp, _Compare, _Alloc>::key_type = int]' 512 | operator[](key_type&& __k) | ^~~~~~~~ /usr/include/c++/10/bits/stl_map.h:512:29: note: no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'std::map<int, int>::key_type&&' {aka 'int&&'} 512 | operator[](key_type&& __k) | ~~~~~~~~~~~^~~ towns.cpp:6:28: error: no match for 'operator[]' (operand types are 'std::map<int, int>' and '<brace-enclosed initializer list>') 6 | if(m[{x,y}]!=0)return m[{x,y}]; | ^ In file included from /usr/include/c++/10/map:61, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:81, from towns.cpp:2: /usr/include/c++/10/bits/stl_map.h:492:7: note: candidate: 'std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type& std::map<_Key, _Tp, _Compare, _Alloc>::operator[](const key_type&) [with _Key = int; _Tp = int; _Compare = std::less<int>; _Alloc = std::allocator<std::pair<const int, int> >; std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type = int; std::map<_Key, _Tp, _Compare, _Alloc>::key_type = int]' 492 | operator[](const key_type& __k) | ^~~~~~~~ /usr/include/c++/10/bits/stl_map.h:492:34: note: no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const key_type&' {aka 'const int&'} 492 | operator[](const key_type& __k) | ~~~~~~~~~~~~~~~~^~~ /usr/include/c++/10/bits/stl_map.h:512:7: note: candidate: 'std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type& std::map<_Key, _Tp, _Compare, _Alloc>::operator[](std::map<_Key, _Tp, _Compare, _Alloc>::key_type&&) [with _Key = int; _Tp = int; _Compare = std::less<int>; _Alloc = std::allocator<std::pair<const int, int> >; std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type = int; std::map<_Key, _Tp, _Compare, _Alloc>::key_type = int]' 512 | operator[](key_type&& __k) | ^~~~~~~~ /usr/include/c++/10/bits/stl_map.h:512:29: note: no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'std::map<int, int>::key_type&&' {aka 'int&&'} 512 | operator[](key_type&& __k) | ~~~~~~~~~~~^~~ towns.cpp:7:11: error: no match for 'operator[]' (operand types are 'std::map<int, int>' and '<brace-enclosed initializer list>') 7 | else m[{x,y}]=m[{y,x}]=getDistance(x,y); | ^ In file included from /usr/include/c++/10/map:61, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:81, from towns.cpp:2: /usr/include/c++/10/bits/stl_map.h:492:7: note: candidate: 'std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type& std::map<_Key, _Tp, _Compare, _Alloc>::operator[](const key_type&) [with _Key = int; _Tp = int; _Compare = std::less<int>; _Alloc = std::allocator<std::pair<const int, int> >; std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type = int; std::map<_Key, _Tp, _Compare, _Alloc>::key_type = int]' 492 | operator[](const key_type& __k) | ^~~~~~~~ /usr/include/c++/10/bits/stl_map.h:492:34: note: no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const key_type&' {aka 'const int&'} 492 | operator[](const key_type& __k) | ~~~~~~~~~~~~~~~~^~~ /usr/include/c++/10/bits/stl_map.h:512:7: note: candidate: 'std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type& std::map<_Key, _Tp, _Compare, _Alloc>::operator[](std::map<_Key, _Tp, _Compare, _Alloc>::key_type&&) [with _Key = int; _Tp = int; _Compare = std::less<int>; _Alloc = std::allocator<std::pair<const int, int> >; std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type = int; std::map<_Key, _Tp, _Compare, _Alloc>::key_type = int]' 512 | operator[](key_type&& __k) | ^~~~~~~~ /usr/include/c++/10/bits/stl_map.h:512:29: note: no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'std::map<int, int>::key_type&&' {aka 'int&&'} 512 | operator[](key_type&& __k) | ~~~~~~~~~~~^~~ towns.cpp:7:20: error: no match for 'operator[]' (operand types are 'std::map<int, int>' and '<brace-enclosed initializer list>') 7 | else m[{x,y}]=m[{y,x}]=getDistance(x,y); | ^ In file included from /usr/include/c++/10/map:61, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:81, from towns.cpp:2: /usr/include/c++/10/bits/stl_map.h:492:7: note: candidate: 'std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type& std::map<_Key, _Tp, _Compare, _Alloc>::operator[](const key_type&) [with _Key = int; _Tp = int; _Compare = std::less<int>; _Alloc = std::allocator<std::pair<const int, int> >; std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type = int; std::map<_Key, _Tp, _Compare, _Alloc>::key_type = int]' 492 | operator[](const key_type& __k) | ^~~~~~~~ /usr/include/c++/10/bits/stl_map.h:492:34: note: no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const key_type&' {aka 'const int&'} 492 | operator[](const key_type& __k) | ~~~~~~~~~~~~~~~~^~~ /usr/include/c++/10/bits/stl_map.h:512:7: note: candidate: 'std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type& std::map<_Key, _Tp, _Compare, _Alloc>::operator[](std::map<_Key, _Tp, _Compare, _Alloc>::key_type&&) [with _Key = int; _Tp = int; _Compare = std::less<int>; _Alloc = std::allocator<std::pair<const int, int> >; std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type = int; std::map<_Key, _Tp, _Compare, _Alloc>::key_type = int]' 512 | operator[](key_type&& __k) | ^~~~~~~~ /usr/include/c++/10/bits/stl_map.h:512:29: note: no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'std::map<int, int>::key_type&&' {aka 'int&&'} 512 | operator[](key_type&& __k) | ~~~~~~~~~~~^~~ towns.cpp:8:13: error: no match for 'operator[]' (operand types are 'std::map<int, int>' and '<brace-enclosed initializer list>') 8 | return m[{x,y}]; | ^ In file included from /usr/include/c++/10/map:61, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:81, from towns.cpp:2: /usr/include/c++/10/bits/stl_map.h:492:7: note: candidate: 'std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type& std::map<_Key, _Tp, _Compare, _Alloc>::operator[](const key_type&) [with _Key = int; _Tp = int; _Compare = std::less<int>; _Alloc = std::allocator<std::pair<const int, int> >; std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type = int; std::map<_Key, _Tp, _Compare, _Alloc>::key_type = int]' 492 | operator[](const key_type& __k) | ^~~~~~~~ /usr/include/c++/10/bits/stl_map.h:492:34: note: no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const key_type&' {aka 'const int&'} 492 | operator[](const key_type& __k) | ~~~~~~~~~~~~~~~~^~~ /usr/include/c++/10/bits/stl_map.h:512:7: note: candidate: 'std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type& std::map<_Key, _Tp, _Compare, _Alloc>::operator[](std::map<_Key, _Tp, _Compare, _Alloc>::key_type&&) [with _Key = int; _Tp = int; _Compare = std::less<int>; _Alloc = std::allocator<std::pair<const int, int> >; std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type = int; std::map<_Key, _Tp, _Compare, _Alloc>::key_type = int]' 512 | operator[](key_type&& __k) | ^~~~~~~~ /usr/include/c++/10/bits/stl_map.h:512:29: note: no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'std::map<int, int>::key_type&&' {aka 'int&&'} 512 | operator[](key_type&& __k) | ~~~~~~~~~~~^~~ towns.cpp: In function 'int hubDistance(int, int)': towns.cpp:23:19: warning: conversion from 'long long int' to 'int' may change value [-Wconversion] 23 | int p=getD(0,i); | ~~~~^~~~~ towns.cpp:33:19: warning: conversion from 'long long int' to 'int' may change value [-Wconversion] 33 | int p=getD(md,i); | ~~~~^~~~~~ towns.cpp:44:12: warning: conversion from 'long long int' to 'int' may change value [-Wconversion] 44 | return minr; | ^~~~ towns.cpp:19:27: warning: unused parameter 'sub' [-Wunused-parameter] 19 | int hubDistance(int n,int sub) { | ~~~~^~~