CSES - Aalto Competitive Programming 2024 - wk4 - Mon - Results
Submission details
Task:Forest density
Sender:htoik
Submission time:2024-09-23 17:36:14 +0300
Language:C++ (C++20)
Status:READY
Result:ACCEPTED
Test results
testverdicttime
#1ACCEPTED0.00 sdetails
#2ACCEPTED0.53 sdetails
#3ACCEPTED0.52 sdetails

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:21:19: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare]
   21 |     for(int i=0; i<n; i++){
      |                  ~^~
input/code.cpp:25:23: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare]
   25 |         for(int k=0; k<n; k++){
      |                      ~^~
input/code.cpp:33:19: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare]
   33 |     for(int i=0; i<q; i++){
      |                  ~^~

Code

#include <bits/stdc++.h>
using namespace std;
typedef unsigned long long ull;
inline ull andmask(unsigned n){
return ~((~0ULL) << n);
}
ull sums[1001][1001];
int main(){
unsigned n, q;
cin >> n >> q;
vector<string> strs;
strs.reserve(n);
vector<ull> ls;
ls.reserve(n);
for(int i=0; i<n; i++){
string s;
cin >> s;
for(int k=0; k<n; k++){
sums[i][k] = (s[k] == '*')
+ (i > 0 ? sums[i-1][k] : 0)
+ (k > 0 ? sums[i][k-1] : 0)
- (i > 0 && k > 0 ? sums[i-1][k-1] : 0);
}
}
for(int i=0; i<q; i++){
ull y1, x1, y2, x2;
cin >> y1 >> x1 >> y2 >> x2;
ull sum = sums[y2-1][x2-1]
- (x1-1 ? sums[y2-1][x1-2] : 0)
- (y1-1 ? sums[y1-2][x2-1] : 0)
+ (x1-1 && y1-1 ? sums[y1-2][x1-2] : 0);
cout << sum << endl;
}
// vector<ull> rls;
// rls.reserve(n);
// for(int i=0; i<n; i++){
// ull ss = 0;
// for(int j=0; j<n; j++){
// ss = (ss << 1) & (strs[j][i] == '*');
// }
// rls.push_back(ss);
// }
}

Test details

Test 1

Verdict: ACCEPTED

input
10 100
**.*.*.**.
*.**.*..*.
.*****.**.
**....***.
...

correct output
10
14
5
7
8
...

user output
10
14
5
7
8
...
Truncated

Test 2

Verdict: ACCEPTED

input
1000 200000
**.**.****..**.***..**.***.**....

correct output
41079
2824
15631
1548
8483
...

user output
41079
2824
15631
1548
8483
...
Truncated

Test 3

Verdict: ACCEPTED

input
1000 200000
******************************...

correct output
1000000
1000000
1000000
1000000
1000000
...

user output
1000000
1000000
1000000
1000000
1000000
...
Truncated