提出 #28176593
ソースコード 拡げる
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
#pragma GCC target ("avx2")
#pragma GCC optimization ("O3")
const int MOD = (1e9+7);
void printmat(const vector<vector<int>>& mat) {
for (auto row : mat) {
for (auto elem : row)
cout << elem << " ";
cout << endl;
}
}
void printv(const vector<int>& v) {
for (auto elem : v)
cout << elem << " ";
cout << endl;
}
void printd(const deque<int>& v) {
for (auto elem : v)
cout << elem << " ";
cout << endl;
}
void printvp(const vector<pair<int,int>>& vp) {
for (auto pr : vp) {
cout << pr.first << ", " << pr.second;
cout << endl;
}
}
void printvs(const vector<set<int>>& vs) {
for (auto row : vs) {
for (auto elem : row)
cout << elem << ", ";
cout << endl;
}
}
void printht(const unordered_map<int, int>& ht) {
for (auto elem : ht)
cout << elem.first << " : " << elem.second << endl;
}
void printmp(const map<ll, ll>& ht) {
for (auto elem : ht)
cout << elem.first << " : " << elem.second << endl;
}
void printst(const set<int>& st) {
for (auto elem : st)
cout << elem << " ";
cout << endl;
}
bool isPrime(long long n) {
if (n <= 1)
return false;
if (n <= 3)
return true;
if (n % 2 == 0 || n % 3 == 0)
return false;
for (long long i = 5; i * i <= n; i = i + 6)
if (n % i == 0 || n % (i + 2) == 0)
return false;
return true;
}
map<long long, long long> primeFactors(long long n) {
map<long long, long long> ans;
while (n % 2 == 0) {
ans[2]++;
n = n/2;
}
for (long long i = 3; i*i <= (n); i = i + 2) {
while (n % i == 0) {
ans[i]++;
n = n/i;
}
}
if (n > 2)
ans[n]++;
return ans;
}
int find_f(const vector<int>& uf, int i) {
while (uf[i]!=i)
i = uf[i];
return i;
}
bool union_f(vector<int>& uf, vector<int>& sz, int a, int b) {
a = find_f(uf, a);
b = find_f(uf, b);
//cout << "a, b = " << a << ", " << b << endl;
if (a==b) return false;
if (sz[a] < sz[b]) {
//cout << "sz[a], sz[b] = " << sz[a] << ", " << sz[b] << endl;
//cout << "a, b = " << a << ", " << b << endl;
swap(a,b);
//cout << "a, b = " << a << ", " << b << endl;
}
sz[a] += sz[b];
uf[b] = a;
return true;
}
long long modexp(long long b, long long e, long long M) {
if (!e) return 1;
b %= M;
long long x = modexp(b * b % M, e / 2, M);
if (e % 2) {
return b * x % M;
} else {
return x;
}
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int T=1, caseIdx=0;
//cin >> T;
while (T--) {
//caseIdx++;
int n, q;
cin >> n;
vector<int> vr(n), vc(n);
vector<pair<int,int>> wp(n+1);
for (int i=0; i<n; i++) {
cin >> vr[i];
wp[vr[i]].first = i;
}
for (int i=0; i<n; i++) {
cin >> vc[i];
wp[vc[i]].second = i;
}
//printvp(wp);
//printv(vr); printv(vc);
cin >> q;
vector<pair<int,int>> vp(q);
vector<vector<int>> matr(q), matc(q);
for (int i=0; i<q; i++) {
int r, c;
cin >> r >> c;
vp[i].first = r-1;
vp[i].second = c-1;
matr[r-1].push_back(i);
matc[c-1].push_back(i);
}
string ans(q, '$');
int i=1, j=n;
while (i<=j) {
int ri = wp[i].first;
int ci = wp[i].second;
int rj = wp[j].first;
int cj = wp[j].second;
//cout << "rj, cj = " << rj << ", " << cj << endl;
#if 0
for (int qidx=0; qidx<q; qidx++) {
if (vp[qidx].first==rj || vp[qidx].second==cj) {
if (ans[qidx]=='$')
ans[qidx] = '#';
} else if (vp[qidx].first==ri || vp[qidx].second==ci) {
if (ans[qidx]=='$')
ans[qidx] = '.';
}
}
#else
for (int qidx : matr[rj]) {
if (ans[qidx]=='$')
ans[qidx] = '#';
}
for (int qidx : matc[cj]) {
if (ans[qidx]=='$')
ans[qidx] = '#';
}
for (int qidx : matr[ri]) {
if (ans[qidx]=='$')
ans[qidx] = '.';
}
for (int qidx : matc[ci]) {
if (ans[qidx]=='$')
ans[qidx] = '.';
}
#endif
i++; j--;
}
cout << ans << "\n";
}
}
提出情報
| 提出日時 |
|
| 問題 |
A - Permutation Grid |
| ユーザ |
llc5pg |
| 言語 |
C++ (GCC 9.2.1) |
| 得点 |
400 |
| コード長 |
4993 Byte |
| 結果 |
AC |
| 実行時間 |
64 ms |
| メモリ |
16552 KiB |
コンパイルエラー
./Main.cpp:6: warning: ignoring #pragma GCC optimization [-Wunknown-pragmas]
6 | #pragma GCC optimization ("O3")
|
./Main.cpp: In function ‘int main()’:
./Main.cpp:118:14: warning: unused variable ‘caseIdx’ [-Wunused-variable]
118 | int T=1, caseIdx=0;
| ^~~~~~~
ジャッジ結果
| セット名 |
Sample |
All |
| 得点 / 配点 |
0 / 0 |
400 / 400 |
| 結果 |
|
|
| セット名 |
テストケース |
| Sample |
sample1.txt |
| All |
all.txt, edge_0.txt, edge_0_2.txt, edge_1.txt, edge_1_2.txt, random.txt, random_10.txt, random_11.txt, random_2.txt, random_3.txt, random_4.txt, random_5.txt, random_6.txt, random_7.txt, random_8.txt, random_9.txt, sample1.txt |
| ケース名 |
結果 |
実行時間 |
メモリ |
| all.txt |
AC |
25 ms |
10244 KiB |
| edge_0.txt |
AC |
64 ms |
16552 KiB |
| edge_0_2.txt |
AC |
55 ms |
15388 KiB |
| edge_1.txt |
AC |
57 ms |
16196 KiB |
| edge_1_2.txt |
AC |
57 ms |
15144 KiB |
| random.txt |
AC |
62 ms |
14060 KiB |
| random_10.txt |
AC |
57 ms |
14268 KiB |
| random_11.txt |
AC |
58 ms |
14020 KiB |
| random_2.txt |
AC |
58 ms |
13956 KiB |
| random_3.txt |
AC |
60 ms |
14056 KiB |
| random_4.txt |
AC |
58 ms |
14336 KiB |
| random_5.txt |
AC |
55 ms |
13744 KiB |
| random_6.txt |
AC |
58 ms |
13956 KiB |
| random_7.txt |
AC |
56 ms |
13596 KiB |
| random_8.txt |
AC |
58 ms |
14068 KiB |
| random_9.txt |
AC |
55 ms |
13748 KiB |
| sample1.txt |
AC |
2 ms |
3544 KiB |