| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1330869 | antarbanik | Bitaro the Brave (JOI19_ho_t1) | C++20 | 71 ms | 440 KiB |
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace std;
using namespace __gnu_pbds;
// =================== PBDS TEMPLATE ===================
// Normal ordered set (no duplicates)
template<typename T>
using ordered_set = tree<
T,
null_type,
less<T>,
rb_tree_tag,
tree_order_statistics_node_update>;
#define int long long
#define yes cout << "YES\n";
#define nl cout << endl;
#define no cout << "NO\n";
#define all(x) x.begin(), x.end()
#define allr(x) x.rbegin(), x.rend()
#define pb push_back
#define ppb pop_back
// #define mp make_pair
#define ff first
#define ss second
#define st string
#define fr(i, x, y) for (int i = x; i < y; i++)
#define FAST ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
// #define MAX 1e18
// #define MIN -1e18
#ifndef ONLINE_JUDGE
#define debug(x) cerr << setw(15) << left << #x << ": "; _print(x); cerr << endl;
#define del cerr << '\n';
#else
#define debug(x)
#define del
#endif
void _print(int t) {cerr << t;}
void _print(string t) {cerr << t;}
void _print(char t) {cerr << t;}
template <typename T, typename V> void _print(const pair<T, V>& p) {cerr << '{'; _print(p.first); cerr << ", "; _print(p.second); cerr << '}';}
template <typename T> void _print(const vector<T>& v) {cerr << '['; for (size_t i = 0; i < v.size(); ++i) {_print(v[i]); if (i != v.size() - 1) cerr << ", ";} cerr << ']';}
template <typename T> void _print(const set<T>& s) {cerr << '{'; bool first = true; for (const auto& x : s) {if (!first) cerr << ", "; _print(x); first = false;} cerr << '}';}
template <typename T> void _print(const multiset<T>& s) {cerr << '{'; bool first = true; for (const auto& x : s) {if (!first) cerr << ", "; _print(x); first = false;} cerr << '}';}
template <typename T, typename V> void _print(const map<T, V>& m) {cerr << '{'; bool first = true; for (const auto& kv : m) {if (!first) cerr << ", "; _print(kv); first = false;} cerr << '}';}
int power(int n, int k){int result = 1;while (k > 0) {if (k & 1) {result = (result * n);}n = (n * n);k >>= 1;}return result;}
int gcd(int a, int b) {if (b > a) {return gcd(b, a);} if (b == 0) {return a;} return gcd(b, a % b);}
int lcm(int a, int b) {return (a / __gcd(a, b)) * b;}
// bool isPrime(int n) {if (n <= 1) return false;if (n == 2) return true;if (n % 2 == 0) return false;for (int i = 3; i * i <= n; i += 2) {if (n % i == 0) return false;}return true;}
/*
let's iterate over all the jewels (i, j)
then try to find out all the pos combinations of orbs and ingot (k, l);
*/
void solve(){
int h, w; cin>>h>>w;
char v[102][102];
for(int i = 1;i<=h;++i){
string s; cin>>s; s = " " + s;
for(int j = 1;j<=w;++j){
v[i][j] = s[j];
}
}
int ans = 0;
for(int i = 1;i<=h;++i){
for(int j = 1;j<=w;++j){
for(int k = 1;k<=h;++k){
for(int l = 1;l<=w;++l){
if(v[i][j] == 'J' && v[i][l] == 'O' && v[k][j] == 'I' && i < k && j < l){
// cout<<i<<" "<<j<<" "<<k<<" "<<l; nl
ans++;
}
}
}
}
}
cout<<ans;
}
int32_t main() {
FAST
#ifndef ONLINE_JUDGE
freopen("error.txt", "w", stderr);
#endif
int t = 1;
//cin >> t;
while (t--) {
solve();
cout << endl;
}
}
Compilation message (stderr)
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
