Submission #73387859
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
#ifdef LOCAL_DEBUG
ifstream fin("D.in"); ofstream fout("D.out");
#else
auto& fin = cin; auto& fout = cout;
#endif
ostream& operator<<(ostream& o,__int128 x){
if(x<0)o<<'-',x=-x; string s;
do s+=char('0'+x%10),x/=10; while(x);
return reverse(s.begin(),s.end()), o<<s;
}
istream& operator>>(istream& in,__int128& x){
string s; in>>s; x=0;
for(int i=(s[0]=='-');i<s.size();++i) x=x*10+s[i]-'0';
return s[0]=='-'?x=-x:0, in;
}
#define each(a, x) for (auto& a : x)
#define rep(i, a, b) for(int i = a; i < (b); ++i )
#define rp(b) for(int _rp = 0; _rp < (b); ++_rp)
#define all(x) begin(x), end(x)
#define rall(x) rbegin(x), rend(x)
#define exist(x, v) ((x).find(v) != (x).end())
#define cexist(x, v) (find(all(x), v) != (x).end())
#define sz(x) (int)(x).size()
#define bg(x) begin(x)
#define rsz resize
#define ins insert
#define pb push_back
#define pf push_front
#define ft front()
#define bk back()
#define fi first
#define se second
#define lb lower_bound
#define ub upper_bound
#define uniq(x) (x).erase(unique(all(x)), (x).end())
#define dedupe(x) do {sort(all(x)); (x).erase(unique(all(x)), (x).end());} while(0)
#define CT template<class T>
CT bool ckmin(T &a, const T &b) { return b < a ? (a = b, true) : false; }
CT bool ckmax(T &a, const T &b) { return b > a ? (a = b, true) : false; }
CT using V = vector<T>; CT using vv = V<V<T>>; CT using vvv = V<vv<T>>;
using ll = long long; using ull = uint64_t; using ld = long double;
using pii = pair<int,int>; using pll = pair<ll,ll>; using pdd = pair<ld,ld>;
using vi = V<int>; using vl = V<ll>; using vd = V<ld>;
using vb = V<bool>; using vc = V<char>; using vs = V<string>;
using vpi = V<pii>; using vpl = V<pll>; using vpd = V<pdd>;
using vvi = V<vi>; using vvl = V<vl>; using vvd = V<vd>;
using vvpi = V<vpi>; using vvpl = V<vpl>; using vvpd = V<vpd>;
using pli = pair<ll,int>; using vpli = V<pli>; using vvpli = V<vpli>;
using pil = pair<int,ll>; using vpil = V<pil>; using vvpil = V<vpil>;
using t3i = tuple<int,int,int>; using vti = V<t3i>;
using t3l = tuple<ll ,ll ,ll >; using vtl = V<t3l>;
CT using maxpq = priority_queue<T>;
CT using minpq = priority_queue<T, V<T>, greater<T>>; using i128 = __int128;
const int INF = 1e9; const ll LLINF = 4e18; const ll NTT = 998244353;
int solve() {
return 0;
}
struct Fenwick2D {
int n, m;
vector<vector<long long>> bit;
Fenwick2D(int n, int m) : n(n), m(m), bit(n+1, vector<long long>(m+1, 0)) {}
void add(int x, int y, long long v) {
for (int i = x + 1; i <= n; i += i & -i)
for (int j = y + 1; j <= m; j += j & -j)
bit[i][j] += v;
}
long long sum(int x, int y) const {
long long s = 0;
for (int i = x + 1; i > 0; i -= i & -i)
for (int j = y + 1; j > 0; j -= j & -j)
s += bit[i][j];
return s;
}
long long sum(int x1, int y1, int x2, int y2) const {
if (x1 > x2 || y1 > y2) return 0;
return sum(x2, y2)
- sum(x1 - 1, y2)
- sum(x2, y1 - 1)
+ sum(x1 - 1, y1 - 1);
}
};
int main(){
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int N, A, B;
fin >> N >> A >> B;
Fenwick2D u(N,N), v(N,N);
rep(i,0,A) {
int a,b,c,d;
fin >> a >> b >> c >> d;
a--, b--, c--, d--;
u.add(a,b,1), u.add(c+1,d+1,1), u.add(a,d+1,-1), u.add(c+1,b,-1);
}
rep(i,0,B) {
int a,b,c,d;
fin >> a >> b >> c >> d;
a--, b--, c--, d--;
v.add(a,b,1), v.add(c+1,d+1,1), v.add(a,d+1,-1), v.add(c+1,b,-1);
}
ll ans = 0;
rep(a,0,N) {
rep(b,0,N) {
if (u.sum(0,0,a,b) > 0 && v.sum(0,0,a,b) > 0) ans++;
}
}
fout << ans << endl;
return 0;
}
Submission Info
Compile Error
./Main.cpp: In function 'std::ostream& operator<<(std::ostream&, __int128)':
./Main.cpp:11:5: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
11 | if(x<0)o<<'-',x=-x; string s;
| ^~
./Main.cpp:11:25: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
11 | if(x<0)o<<'-',x=-x; string s;
| ^~~~~~
./Main.cpp: In function 'std::istream& operator>>(std::istream&, __int128&)':
./Main.cpp:17:28: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
17 | for(int i=(s[0]=='-');i<s.size();++i) x=x*10+s[i]-'0';
| ~^~~~~~~~~
Judge Result
| Set Name |
Sample |
All |
| Score / Max Score |
0 / 0 |
400 / 400 |
| Status |
|
|
| Set Name |
Test Cases |
| Sample |
sample01.txt, sample02.txt, sample03.txt |
| All |
sample01.txt, sample02.txt, sample03.txt, in01.txt, in02.txt, in03.txt, in04.txt, in05.txt, in06.txt, in07.txt, in08.txt, in09.txt, in10.txt, in11.txt, in12.txt, in13.txt, in14.txt, in15.txt, in16.txt, in17.txt, in18.txt, in19.txt, in20.txt, in21.txt, in22.txt, in23.txt, in24.txt, in25.txt, in26.txt, in27.txt, in28.txt, in29.txt, in30.txt, in31.txt, in32.txt, in33.txt, in34.txt, in35.txt, in36.txt, in37.txt, in38.txt, in39.txt, in40.txt, in41.txt, in42.txt, in43.txt, in44.txt, in45.txt, in46.txt, in47.txt, in48.txt, in49.txt, in50.txt, in51.txt, in52.txt, in53.txt, in54.txt, in55.txt, in56.txt, in57.txt, in58.txt, in59.txt, in60.txt, in61.txt, in62.txt, in63.txt, in64.txt, in65.txt, in66.txt, in67.txt, in68.txt, in69.txt, in70.txt, in71.txt, in72.txt, in73.txt |
| Case Name |
Status |
Exec Time |
Memory |
| in01.txt |
AC |
1 ms |
3604 KiB |
| in02.txt |
AC |
1 ms |
3524 KiB |
| in03.txt |
AC |
8 ms |
7376 KiB |
| in04.txt |
AC |
1 ms |
3860 KiB |
| in05.txt |
AC |
1 ms |
3636 KiB |
| in06.txt |
AC |
2 ms |
3980 KiB |
| in07.txt |
AC |
2 ms |
3928 KiB |
| in08.txt |
AC |
6 ms |
7180 KiB |
| in09.txt |
AC |
8 ms |
7236 KiB |
| in10.txt |
AC |
6 ms |
7212 KiB |
| in11.txt |
AC |
8 ms |
7312 KiB |
| in12.txt |
AC |
8 ms |
7236 KiB |
| in13.txt |
AC |
7 ms |
7236 KiB |
| in14.txt |
AC |
8 ms |
7328 KiB |
| in15.txt |
AC |
6 ms |
7248 KiB |
| in16.txt |
AC |
5 ms |
7376 KiB |
| in17.txt |
AC |
8 ms |
7248 KiB |
| in18.txt |
AC |
6 ms |
7308 KiB |
| in19.txt |
AC |
5 ms |
7228 KiB |
| in20.txt |
AC |
8 ms |
7316 KiB |
| in21.txt |
AC |
8 ms |
7252 KiB |
| in22.txt |
AC |
8 ms |
7236 KiB |
| in23.txt |
AC |
8 ms |
7228 KiB |
| in24.txt |
AC |
8 ms |
7236 KiB |
| in25.txt |
AC |
8 ms |
7308 KiB |
| in26.txt |
AC |
6 ms |
7308 KiB |
| in27.txt |
AC |
6 ms |
7248 KiB |
| in28.txt |
AC |
6 ms |
7236 KiB |
| in29.txt |
AC |
1 ms |
3508 KiB |
| in30.txt |
AC |
1 ms |
3640 KiB |
| in31.txt |
AC |
1 ms |
3604 KiB |
| in32.txt |
AC |
6 ms |
7236 KiB |
| in33.txt |
AC |
1 ms |
3604 KiB |
| in34.txt |
AC |
6 ms |
7236 KiB |
| in35.txt |
AC |
1 ms |
3636 KiB |
| in36.txt |
AC |
1 ms |
3604 KiB |
| in37.txt |
AC |
8 ms |
7316 KiB |
| in38.txt |
AC |
1 ms |
3536 KiB |
| in39.txt |
AC |
6 ms |
7236 KiB |
| in40.txt |
AC |
6 ms |
7236 KiB |
| in41.txt |
AC |
1 ms |
3864 KiB |
| in42.txt |
AC |
1 ms |
3484 KiB |
| in43.txt |
AC |
1 ms |
3548 KiB |
| in44.txt |
AC |
8 ms |
7180 KiB |
| in45.txt |
AC |
8 ms |
7228 KiB |
| in46.txt |
AC |
8 ms |
7316 KiB |
| in47.txt |
AC |
8 ms |
7308 KiB |
| in48.txt |
AC |
6 ms |
7160 KiB |
| in49.txt |
AC |
6 ms |
7336 KiB |
| in50.txt |
AC |
8 ms |
7328 KiB |
| in51.txt |
AC |
8 ms |
7236 KiB |
| in52.txt |
AC |
8 ms |
7248 KiB |
| in53.txt |
AC |
8 ms |
7256 KiB |
| in54.txt |
AC |
8 ms |
7236 KiB |
| in55.txt |
AC |
8 ms |
7228 KiB |
| in56.txt |
AC |
1 ms |
3508 KiB |
| in57.txt |
AC |
1 ms |
3636 KiB |
| in58.txt |
AC |
1 ms |
3548 KiB |
| in59.txt |
AC |
1 ms |
3604 KiB |
| in60.txt |
AC |
1 ms |
3636 KiB |
| in61.txt |
AC |
1 ms |
3520 KiB |
| in62.txt |
AC |
1 ms |
3636 KiB |
| in63.txt |
AC |
7 ms |
7328 KiB |
| in64.txt |
AC |
7 ms |
7308 KiB |
| in65.txt |
AC |
1 ms |
3376 KiB |
| in66.txt |
AC |
1 ms |
3636 KiB |
| in67.txt |
AC |
7 ms |
7220 KiB |
| in68.txt |
AC |
7 ms |
7248 KiB |
| in69.txt |
AC |
1 ms |
3628 KiB |
| in70.txt |
AC |
1 ms |
3536 KiB |
| in71.txt |
AC |
1 ms |
3568 KiB |
| in72.txt |
AC |
1 ms |
3636 KiB |
| in73.txt |
AC |
6 ms |
7228 KiB |
| sample01.txt |
AC |
1 ms |
3568 KiB |
| sample02.txt |
AC |
1 ms |
3536 KiB |
| sample03.txt |
AC |
1 ms |
3824 KiB |