Submission #3424539
Source Code Expand
#include <stdio.h> #include <stdlib.h> #include <stdint.h> #include <stdbool.h> #include <limits.h> #include <cinttypes> #include <string.h> #include <bits/stdc++.h> using namespace std; #define countof(a) (sizeof(a)/sizeof(*a)) #define vi vector<int> #define vvi vector<vector<int> > #define vpi vector<pi > #define pi pair<int,int> #define fi first #define se second #define all(n) n.begin(), n.end() #define FOR(var, to) for (register s64 var = 0; var < (s64)to; var++) #define FROMTO(var, from, to) for (register s64 var = from; var <= (s64)to; var++) #define INIT(var) FOR(i,countof(var)) var[i] = 0 #define INPUT(var) FOR(i,countof(var)) var[i] = ri() #define SORT(v) qsort(v,countof(v),sizeof(*v),int_less) #define SORTT(v) qsort(v,countof(v),sizeof(*v),int_greater) #define QSORT(v,b) qsort(v,countof(v),sizeof(*v),b) #define MOD 1000000007 #define INF (1 << 30) typedef uint8_t u8; typedef uint16_t u16; typedef uint32_t u32; typedef uint64_t u64; typedef int8_t s8; typedef int16_t s16; typedef int32_t s32; typedef int64_t s64; template<int mod> struct ModInt{ int x; ModInt():x(0){} ModInt(long long y):x(y>=0?y%mod:(mod-(-y)%mod)%mod){} ModInt &operator+=(const ModInt &p){ if((x+=p.x)>=mod)x-=mod; return *this; } ModInt &operator-=(const ModInt &p){ if((x+=mod-p.x)>=mod)x-=mod; return *this; } ModInt &operator*=(const ModInt &p){ x=(int)(1LL*x*p.x%mod); return *this; } ModInt &operator/=(const ModInt &p){ *this*=p.inverse(); return *this; } ModInt operator-()const{return ModInt(-x);} ModInt operator+(const ModInt &p)const{return ModInt(*this)+=p;} ModInt operator-(const ModInt &p)const{return ModInt(*this)-=p;} ModInt operator*(const ModInt &p)const{return ModInt(*this)*=p;} ModInt operator/(const ModInt &p)const{return ModInt(*this)/=p;} bool operator==(const ModInt &p)const{return x==p.x;} bool operator!=(const ModInt &p)const{return x!=p.x;} ModInt inverse()const{ int a=x,b=mod,u=1,v=0,t; while(b>0){ t=a/b; a-=t*b; swap(a,b); u-=t*v; swap(u,v); } return ModInt(u); } friend ostream &operator<<(ostream &os,const ModInt<mod> &p){ return os<<p.x; } friend istream &operator>>(istream &is,ModInt<mod> &a){ long long x; is>>x; a=ModInt<mod>(x); return (is); } }; typedef ModInt<MOD> mint; struct UnionFind{ vi data; UnionFind(int size):data(size,-1){} bool unite(int x,int y) { x=root(x);y=root(y); if(x!=y){ if(data[y]<data[x])swap(x,y); data[x]+=data[y];data[y]=x; } return x!=y; } bool find(int x,int y) { return root(x)==root(y); } int root(int x) { return data[x]<0?x:data[x]=root(data[x]); } int size(int x) { return -data[root(x)]; } bool united() { int comroot = -1; FOR(i,data.size()) { if (comroot != -1 && root(i) != comroot) return false; comroot = root(i); } return true; } }; static inline int ri() { int a; scanf("%d", &a); return a; } static inline s64 rs64() { s64 a; scanf("%" SCNd64, &a); return a; } static inline void wi(int a) { printf("%d", a); } static inline void wu64(u64 a) { printf("%" PRIu64, a); } static inline void ws64(s64 a) { printf("%" PRId64, a); } int int_less(const void *a, const void *b) { return (*((const int*)a) - *((const int*)b)); } int int_greater(const void *a, const void *b) { return (*((const int*)b) - *((const int*)a)); } int main() { int n = ri(); int a = ri(); int b = ri(); int x[n]; INPUT(x); s64 res = 0; FROMTO(i,1,n-1) res += min(a*((s64)x[i]-x[i-1]),b); cout << res << endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | D - Walk and Teleport |
User | QCFium |
Language | C++14 (GCC 5.4.1) |
Score | 0 |
Code Size | 4084 Byte |
Status | CE |
Compile Error
./Main.cpp: In function ‘int main()’: ./Main.cpp:163:52: error: no matching function for call to ‘min(s64, int&)’ FROMTO(i,1,n-1) res += min(a*((s64)x[i]-x[i-1]),b); ^ In file included from /usr/include/c++/5/bits/char_traits.h:39:0, from /usr/include/c++/5/ios:40, from /usr/include/c++/5/istream:38, from /usr/include/c++/5/sstream:38, from /usr/include/c++/5/complex:45, from /usr/include/c++/5/ccomplex:38, from /usr/include/x86_64-linux-gnu/c++/5/bits/stdc++.h:52, from ./Main.cpp:8: /usr/include/c++/5/bits/stl_algobase.h:195:5: note: candidate: template<class _Tp> constexpr const _Tp& std::min(const _Tp&, const _Tp&) min(const _Tp& __a, const _Tp& __b) ^ /usr/include/c++/5/bits/stl_algobase.h:195:5: note: template argument deduction/substitution failed: ./Main.cpp:163:52: note: deduced conflicting types for parameter ‘cons...