Submission #200127

#TimeUsernameProblemLanguageResultExecution timeMemory
200127aloo123Bitaro the Brave (JOI19_ho_t1)C++14
100 / 100
589 ms159096 KiB
#include <iostream> #include <algorithm> #define ll long long #define ld long double #define f first #define s second #define mp make_pair #define pb push_back #define vll vector<ll> #define pll pair<ll,ll> using namespace std; const ll N = 5e5+100; const ll MOD = 1e9+7; char grid[3005][3005]; ll orb[3005][3005]; ll ing[3005][3005]; int main() { ios_base::sync_with_stdio(0); //cin.tie(0); ll n,m; cin>>n>>m; ll ans =0; for(int i =1;i<=n;i++) for(int j = 1;j<=m;j++) cin>>grid[i][j]; for(int i =1;i<=n;i++){ for(int j =1;j<=m;j++){ orb[i][j] = orb[i][j-1]; if(grid[i][j] == 'O') orb[i][j]++; } } for(int i =1;i<=m;i++){ for(int j =1;j<=n;j++) { ing[j][i] = ing[j-1][i]; if(grid[j][i] =='I') ing[j][i]++; } } for(int i =1;i<=n;i++){ for(int j =1;j<=m;j++){ if(grid[i][j] == 'J'){ ll o = orb[i][m]-orb[i][j]; ll inglets = ing[n][j] - ing[i][j]; ans += (o*inglets); } } } cout<<ans<<endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...