QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#573727 | #7070. Isomerism | lazyx | WA | 46ms | 3844kb | C++20 | 3.5kb | 2024-09-18 19:49:16 | 2024-09-18 19:49:18 |
Judging History
answer
#include<bits/stdc++.h>
#include<array>
#define all(v) v.begin(),v.end()
//#pragma GCC optimize(3)
//#define __builtin_popcount __popcnt
using ll = long long;
using ull = unsigned long long;
using db = double;
using namespace std;
template<typename A>
A gcd(A a, A b) {
return b ? gcd(b, a % b) : a;
}
template<typename A>
A lcm(A a, A b) {
return a * b / gcd(a, b);
}
template<typename A>
bool isprime(A a) {
if (a == 1) {
return 0;
}
for (ll i = 2; i * i <= a; i++) {
if (a % i == 0) {
return false;
}
}
return true;
}
template<typename A>
A max(A a, A b, A c) {
return max(a, max(b, c));
}
template<typename A>
A min(A a, A b, A c) {
return min(a, min(b, c));
}
/*void que(int x, int y) {
cout << "? " << x << ' ' << y << '\n';
}
void ans(int x, int y) {
cout << "! " << x << ' ' << y << '\n';
}*/
const ll MOD = 998244353;
ll ksm(ll a, ll b, ll p) {
a %= p;
ll res = 1;
while (b) {
if (b & 1)res = res * a % p;
a = a * a % p;
b >>= 1;
}
return res;
}
vector<int>par;
int find(int x) {
return par[x] == x ? x : (par[x] = find(par[x]));
}
void merge(int x, int y) {
par[find(y)] = find(x);
}
/*
const int N = 1e7;
bool p[N + 5];
int pr[N + 5];
int sg[N + 10];
bool vis[N + 10];
int cnt = 0;
void Euler() {
memset(p, true, sizeof(p));
p[0] = p[1] = true; //特例
for (ll i = 2; i <= N; ++i) {
if (p[i]) pr[cnt] = i, sg[i] = ++cnt; //选出素数
for (int j = 0; j < cnt && pr[j] * i <= N; ++j) {
p[pr[j] * i] = false; //筛出非素数
if (i % pr[j] == 0) break; //重复筛选,跳出循环
}
}
}
auto mul = [](ll a, ll b) {
if (a == -1 || b == -1) return -1ll;
if (1e18 / b < a) return -1ll;
else return a * b;
};
const int N = 1e6;
ll fact[N + 10], in_fact[N + 10];
ll C(ll n, ll m) {
if (n < m || m < 0)return 0;
return fact[n] * in_fact[m] % MOD * in_fact[n - m] % MOD;
}
void init() {
fact[0] = 1;
in_fact[0] = 1;
for (int i = 1; i <= N; i++) {
fact[i] = fact[i - 1] * i % MOD;
in_fact[i] = ksm(fact[i], MOD - 2, MOD);
}
}
*/
int exgcd(ll a, ll b, ll& x, ll& y) {
if (!b) {
x = 1, y = 0;
return a;
}
ll d = exgcd(b, a % b, y, x);
y -= (a / b * x);
return d;
}
template<typename A>
A lowbit(A x) {
return x & (-x);
}
string ss[8] = { "-F","-Cl","-Br","-I","-CH3","-CH2CH3","-CH2CH2CH3","-H" };
void solve() {
string s1, s2, s3, s4;
cin >> s1 >> s2 >> s3 >> s4;
map<string, int>mp;
mp[s1]++;
mp[s2]++;
mp[s3]++;
mp[s4]++;
vector<int>a;
for (auto [i, j] : mp)a.push_back(j);
int mx = *max_element(all(a));
if (mx > 2)cout << "None\n";
else if (mx == 2) {
if (s1 == s2 || s3 == s4)cout << "Cis\n";
else cout << "Trans\n";
}
else {
int id1 = 0;
while (ss[id1] != s1)id1++;
int id2 = 0;
while (ss[id2] != s1)id2++;
int id3 = 0;
while (ss[id3] != s1)id3++;
int id4 = 0;
while (ss[id4] != s1)id4++;
if (id1 < id3 && id2 < id4)cout << "Entgegen\n";
else cout << "Zasamman\n";
}
}
int main() {
ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
int t = 1;
cin >> t;
while (t--) {
solve();
}
return 0;
}
詳細信息
Test #1:
score: 100
Accepted
time: 0ms
memory: 3844kb
input:
2 -H -H -H -Cl -F -F -Br -Cl
output:
None Cis
result:
ok 2 lines
Test #2:
score: -100
Wrong Answer
time: 46ms
memory: 3644kb
input:
100000 -Br -CH3 -H -CH2CH2CH3 -CH3 -I -Cl -Cl -CH3 -Br -CH2CH3 -CH3 -H -CH3 -Cl -CH3 -H -F -CH2CH3 -CH2CH2CH3 -Br -Br -Cl -CH2CH2CH3 -F -Cl -H -CH2CH2CH3 -CH2CH2CH3 -CH3 -CH3 -H -CH2CH2CH3 -CH3 -CH2CH2CH3 -Br -CH3 -Cl -CH2CH2CH3 -CH3 -H -CH2CH3 -I -I -CH3 -Cl -Br -I -I -Cl -H -F -CH2CH2CH3 -Cl -Br -...
output:
Zasamman Cis Trans Trans Zasamman Cis Zasamman Trans Trans Trans Cis Zasamman Zasamman Cis Cis Zasamman Trans Trans Cis Trans Cis Trans Trans Zasamman Cis None Zasamman Zasamman Trans None Cis Trans Zasamman Zasamman Zasamman Trans Zasamman Trans Zasamman Trans Cis Trans Zasamman Trans None Zasamman...
result:
wrong answer 4th lines differ - expected: 'None', found: 'Trans'