Task: | Planeetat |
Sender: | Lieska |
Submission time: | 2020-09-26 16:17:06 +0300 |
Language: | C++ (C++17) |
Status: | COMPILE ERROR |
Compiler report
input/code.cpp: In function 'int main()': input/code.cpp:49:14: error: ambiguous overload for 'operator<<' (operand types are 'std::ostream {aka std::basic_ostream<char>}' and '__int128') cout << ans[i] << "\n"; ~~~~~^~~~~~~~~ In file included from /usr/include/c++/7/istream:39:0, from /usr/include/c++/7/sstream:38, from /usr/include/c++/7/complex:45, from /usr/include/c++/7/ccomplex:39, from /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h:52, from input/code.cpp:1: /usr/include/c++/7/ostream:166:7: note: candidate: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(long int) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>] operator<<(long __n) ^~~~~~~~ /usr/include/c++/7/ostream:170:7: note: candidate: std::basic_ostream<_CharT, _Tra...
Code
#include <bits/stdc++.h> using namespace std; typedef long long ll; __int128_t M=1e9+7, bi[5050][5050], kertoma[5050], J[5050][5050], ans[5050]; ll pot(ll a, ll b){ if (a==0) return 1; if (b==0) return 1; ll d=pot(a, b/2); d = (d*d)%M; if (b%2==0) return d; else return (d*a)%M; } ll bin(ll a, ll b){ if (bi[a][b]) return bi[a][b]; else{ ll c=kertoma[a]; c = (c*pot(kertoma[b], M-2))%M; c = (c*pot(kertoma[a-b], M-2))%M; bi[a][b]=c; return c; } } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); ll n; cin >> n; kertoma[0]=1; for (int i=1; i<=n; ++i) kertoma[i]=(kertoma[i-1]*i)%M; for (int i=1; i<=n; ++i) J[i][1]=kertoma[i-1]; for (int i=2; i<=n; ++i){ for (int j=2; j<=i; ++j){ J[i][j]=(J[i-1][j]*(i-1)+J[i-1][j-1])%M; } } for (int i=1; i<=n; ++i){ for (int j=i; j<=n; ++j){ if (j<n) ans[i] = (ans[i] + J[j][i]*bin(n, j)*j * pot(n, n-j-1))%M; else ans[i] = (ans[i] + J[j][i]*bin(n, j))%M; } } for (int i=1; i<=n; ++i){ cout << ans[i] << "\n"; } }