Submission #913631

#TimeUsernameProblemLanguageResultExecution timeMemory
913631Mahdiyar1Bitaro the Brave (JOI19_ho_t1)C++17
50 / 100
290 ms274432 KiB
// #pragma GCC optimize("Ofast", "unroll-loops") //#pragma GCC optimize("Ofast") //#pragma GCC target("avx,avx2,fma") #include <iostream> #include <iomanip> #include <vector> #include <set> #include <unordered_set> #include <queue> #include <deque> #include <map> #include <unordered_map> #include <stack> #include <algorithm> #include <cmath> #include <numeric> #include <bitset> #include <cstring> using namespace std; typedef long long ll; #define debug(i) cout << "#pass " << i<<endl #define Kawasaki ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL); #define int ll #define vi vector<int> #define vii vector<vector<int> > #define qi queue<int> #define sort(v) sort(v.begin() , v.end()) #define reverse(v) reverse(v.begin(),v.end()) #define pb push_back #define pf push_front #define ppb pop_back #define all(v) v.begin() , v.end() #define pii pair<int,int> #define bs bitset #define mkp(x,y) make_pair(x , y) #define fi first #define se second const int maxn = 3e3 + 10; const int maxa = 2e3 + 10; const int lg = 21; const int mod = 1e9 + 7; const int INF = 1e18 + 10; const int len = 320; //int p = 31 , q = 53 , pp = 1 , qq = 1; // int pow(int a , int b , int _mod = mod){ // return b ? pow(a*a%_mod , b>>1ll,_mod) * (b&1 ? a : 1) %_mod: 1; // } //pii mv[8] = {mkp(1,2) , mkp(-1,2) , mkp(1,-2) , mkp(-1,-2) , mkp(2,1) , mkp(2,-1) , mkp(-2,1) , mkp(-2,-1)}; pii mv[4] = {mkp(1,0) , mkp(-1,0) , mkp(0,1) , mkp(0,-1)}; int n , m , cnt[3][maxn][maxn] , ant[3][maxn][maxn]; string mp[maxn]; void solve(){ cin >> n >> m; for(int i=1;i<=n;i++){ cin >> mp[i]; mp[i] = "." + mp[i]; for(int j=1;j<=m;j++){ int x = 0; if(mp[i][j] == 'O')x=1; else if(mp[i][j] == 'I')x=2; cnt[0][i][j] = cnt[0][i][j-1];ant[0][j][i] = ant[0][j][i-1]; cnt[1][i][j] = cnt[1][i][j-1];ant[1][j][i] = ant[1][j][i-1]; cnt[2][i][j] = cnt[2][i][j-1];ant[2][j][i] = ant[2][j][i-1]; cnt[x][i][j] += 1; ant[x][j][i] += 1; } } int ans = 0; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ if(mp[i][j] != 'J')continue; ans += (cnt[1][i][m] - cnt[1][i][j]) * (ant[2][j][n] - ant[2][j][i]); } // cout << i << ' ' << ans << endl; } cout << ans; } signed main(){ Kawasaki; int T = 1 , TT = 1; // cin >> T; while(T--){ solve(); } }

Compilation message (stderr)

joi2019_ho_t1.cpp: In function 'int main()':
joi2019_ho_t1.cpp:85:17: warning: unused variable 'TT' [-Wunused-variable]
   85 |     int T = 1 , TT = 1;
      |                 ^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...