QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#139540#5499. Aliasesammardab3an#WA 185ms5328kbC++202.8kb2023-08-13 20:30:322023-08-13 20:30:35

Judging History

你现在查看的是最新测评结果

  • [2023-08-13 20:30:35]
  • 评测
  • 测评结果:WA
  • 用时:185ms
  • 内存:5328kb
  • [2023-08-13 20:30:32]
  • 提交

answer


// By AmmarDab3an 

#include "bits/stdc++.h"

using namespace std;

#define int int64_t
#define ll  int64_t

// typedef unsigned int        uint;
// typedef long long int       ll;
// typedef unsigned long long  ull;
typedef pair<int, int>    pii;
typedef pair<ll, ll>      pll;
typedef pair<int, pii>    iii;
typedef pair<ll, pll>     lll;
typedef vector<int>       vi;
typedef vector<ll>        vl;
typedef vector<pii>       vpii;
typedef vector<pll>       vpll;

#define endl '\n'
#define fastIO ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define freopenI freopen("input.txt", "r", stdin);
#define freopenO freopen("output.txt", "w", stdout);

const int INF = 0x3f3f3f3f;
const ll INFLL = 0x3f3f3f3f3f3f3f3f;
const int MOD = 1e9 + 7;
const double EPS = 1e-9;
const double  PI = acos(-1);

mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
 
int rand(int x, int y) {
	return uniform_int_distribution<int>(x, y)(rng);
}

int mul(int a, int b){
	int ret = (1ll * (a%MOD) * (b%MOD)) % MOD;
	return (ret+MOD)%MOD;
}
 
int add(int a, int b){
	int ret = (1ll * (a%MOD) + (b%MOD)) % MOD;
	return (ret+MOD)%MOD;
}
 
int pow_exp(int n, int p){
	if(!p) return 1;
	if(p&1) return mul(n, pow_exp(n, p-1));
	int tmp = pow_exp(n, p/2);
	return mul(tmp, tmp);
}

int inv(int x){
	return pow_exp(x, MOD-2);
}
 
const int  MAX = 2e5 + 10;
const int NMAX = 2e5 + 10;
const int MMAX = 2e5 + 10;
const int LOG_MAX = ceil(log2(double(NMAX)));
const int BLOCK = ceil(sqrt(double(NMAX)));

int fac[NMAX], ifac[NMAX];

void init(){
	
	fac[0] = 1;
	for(int i = 1; i < NMAX; i++){
		fac[i] = mul(fac[i-1], i);
	}
	
	ifac[NMAX-1] = inv(fac[NMAX-1]);
	for(int i = NMAX-2; i >= 0; i--){
		ifac[i] = mul(ifac[i+1], i+1);
	}
}

int choose(int n, int c){
	assert(n >= c);
	return mul(fac[n], mul(ifac[c], ifac[n-c]));
}

int32_t main(){
    
    fastIO;
    
#ifdef LOCAL
    freopenI;
    freopenO;
#endif

    // freopen("name.in", "r", stdin);
    
	// init();
	
    int t; cin >> t; while(t--){

		int n;
		cin >> n;
		
		vector<pair<string, string>> vec(n);
		
		for(auto &[a, b] : vec){
			cin >> a >> b;
		}
		
		int ans_a = 0;
		int ans_b = 0;
		int ans_c = 10;
		int ans_sm = 10;
		
		for(int i = 0; i <= 10; i++)
		for(int j = 0; j <= 10; j++){
			
			int mx = 0;
			unordered_map<string, int> mp;
			
			for(auto &[a, b] : vec){
				string cur = a.substr(0, i) + b.substr(0, j);
				mx = max(mx, ++mp[cur]);
			}
			
			int c = 0;
			
			if(mx > 1){
				c = 1;
				int cc = 10;
				while(cc < mx){
					cc *= 10;
					c++;
				}
			}
			
			int cur_sm = i+j+c;
			if(cur_sm < ans_sm){
				ans_a = i, ans_b = j, ans_c = c, ans_sm = cur_sm;
			}
		}
		
		cout << ans_a << ' ' << ans_b << ' ' << ans_c << endl;
    }	
}

詳細信息

Test #1:

score: 100
Accepted
time: 1ms
memory: 3576kb

input:

1
11
sven eriksson
erik svensson
sven svensson
erik eriksson
bjorn eriksson
bjorn svensson
bjorn bjornsson
erik bjornsson
sven bjornsson
thor odinsson
odin thorsson

output:

0 0 2

result:

ok correct! (1 test case)

Test #2:

score: -100
Wrong Answer
time: 185ms
memory: 5328kb

input:

6
1
g u
14643
gj ek
hc bi
hi ke
ab ij
hk cj
ha bi
ag fe
eb ej
hd ei
bf gj
ke dd
ib jd
id jb
gd ei
cj bi
bi hg
ic dh
ke gk
af eg
fg dd
fe fa
be ge
hf kj
ih ci
gg jf
ed dd
eh gi
cc kd
ka fd
af gb
ka fe
ja ed
bc hi
eg cf
gg ff
kf gf
ii ch
hh ec
ei ec
cd gc
bh hb
dd id
ce bk
ib ic
bf kk
gh cd
hb he
if g...

output:

0 0 0
0 0 5
0 1 1
1 0 2
1 1 1
2 0 1

result:

wrong answer Loginy nie moga byc puste! (test case 1)