Hello everyone, while solving problems the code template I use on codeforces doesn't work on CSES. Can anyone point out what can be done in the template so that it can be used in both places. Here is my template
#include <vector>
#include <list>
#include <map>
#include <climits>
#include <set>
#include <deque>
#include <stack>
#include <bitset>
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <ctime>
#include <queue>
#include <unordered_map>
#define fastio ios_base::sync_with_stdio(false); cin.tie(NULL);
#define ln cout << endl;
#define vi vector<int>
#define vll vector<long long>
#define sortl(vec) sort(vec.begin(), vec.end());
#define sortr(vec) sort(vec.rbegin(), vec.rend());
#define forn(i, x, n) for(long long i = x; i < n; i++)
#define revn(i, n, x) for(long long i = n; i >= x; i--)
#define in(vec) for(auto &it : vec) cin >> it;
#define out(vec) for(auto &it : vec) cout << it << " "; ln
#define ll long long
#define pb emplace_back
#define mp make_pair
#define um unordered_map
#define pii pair<int, int>
#define pll pair<ll, ll>
#define ff first
#define ss second
#define pi 3.14159265359
#define o(x) cout << x << endl;
#define all(a) a.begin(), a.end()
#define sz(a) (ll)a.size()
#define endl "\n"
#define CLOCK cerr<<"time taken : "<<(float)clock()/CLOCKS_PER_SEC<<" secs"<<endl;
using namespace std;
const ll Nfact = 200005;
const ll mod = 1000000007;
const ll Nsieve = 1000005;
//https://codeforces.net/blog/entry/74640?#comment-587521
vector<bool> is_prime(Nsieve, true);
void sieve() {
is_prime[0] = is_prime[1] = false;
for (ll i = 2; i * i <= Nsieve; i++) {
if (is_prime[i]) {
for (ll j = i * i; j <= Nsieve; j += i)
is_prime[j] = false;
}
}
}
ll bSearch(ll l, ll r, ll x, vll arr) {
while (l <= r) {
ll m = l + (r - l) / 2;
if (arr[m] == x)
return m;
if (arr[m] < x)
l = m + 1;
else
r = m - 1;
}
return -1;
}
//For printing prime factors of a number
void primeFactors(ll n) {
while (n % 2 == 0) {
//cout << 2 << " ";
n = n / 2;
}
for (ll i = 3; i <= sqrt(n); i += 2) {
while (n % i == 0) {
//cout << i << " ";
n = n / i;
}
}
if (n > 2)
cout << n << " ";
}
ll power(ll x, ll y, ll p) {
ll res = 1;
x = x % p;
while (y > 0) {
if (y & 1)
res = (res * x) % p;
y = y >> 1;
x = (x * x) % p;
}
return res;
}
ll modulo(ll a, ll b) {
ll c = a % b;
return (c < 0) ? c + b : c;
}
//Use these functions below only when modulus is involved
ll mul(ll x, ll y) {
return (x * y) % mod;
}
ll inv(ll x) {
return power(x, mod - 2, mod);
}
ll divide(ll x, ll y)
{
return mul(x, inv(y));
}
ll fact[Nfact];
void precalc() { // Call this once in main()
fact[0] = 1;
for (ll i = 1; i < Nfact; i++)
fact[i] = mul(fact[i - 1], i);
}
ll nCr(ll n, ll k) {
if (n < k)
return 0;
return divide(fact[n], mul(fact[k], fact[n - k]));
}
void solve() {
//[IMPORTANT] Make the indexing 0-based if required.
ll n;
cin >> n;
}
int main() {
// in(vec) works for size-defined type vectors
#ifndef ONLINE_JUDGE
// for getting input from input.txt
freopen("input1.txt", "r", stdin);
// for writing output to output.txt
freopen("output1.txt", "w", stdout);
#endif
fastio
ll t;
cin >> t;
while (t--) {
solve();
}
CLOCK
return 0;
}
Someone please help
Are you certain that OnlineJudge is defined in the compilation flags
CSES now supports the ONLINE_JUDGE flag in C++ submissions.
Can anyone share their code template which works on CSES, codeforces as well as on their local machines?
I try your template and it work fine (I also deleted define ONLINE_JUDGE thing).
Can you share the link of CSES submission?
https://cses.fi/problemset/result/889096/ //Edit : I have no idea if this how I should link it
Can you send in the code here. I guess CSES doesn't allow access to others submissions
I sumbit it in the first problem "Weird Algorithm" ,If you solve it already you can go the hacks and check "zakaria2020" Submission
Couldn't find the hacks section. Please help with code instead
Yeah I forgot this code would work fine but this will not work on codeforces
I try it again in codeforces and it works 90776922
The whole thing is that after we delete the online_judge thing, it doesn't work on local machine.
just comment it while submitting....
Or if you use sublime you can use this build and completely eliminate the problematic lines..
https://pastebin.com/ppxZrZN8
Yeah I use sublime. Can you tell how the above thing can be done?
Go to build system -> new build system Copy the given code and save it.. Than compile and run your codes with this build instead of c++ single file.. Also make sure that input.txt and output.txt are located in same folder as your code. I am assuming that you have downloaded and installed minGW.