結果
| 問題 | 
                            No.2644 Iro Iro-Iro
                             | 
                    
| コンテスト | |
| ユーザー | 
                             shobonvip
                         | 
                    
| 提出日時 | 2024-02-16 05:41:16 | 
| 言語 | C++17  (gcc 13.3.0 + boost 1.87.0)  | 
                    
| 結果 | 
                             
                                TLE
                                 
                             
                            
                            (最新)
                                AC
                                 
                             
                            (最初)
                            
                            
                         | 
                    
| 実行時間 | - | 
| コード長 | 814 bytes | 
| コンパイル時間 | 3,220 ms | 
| コンパイル使用メモリ | 225,708 KB | 
| 最終ジャッジ日時 | 2025-02-19 13:26:38 | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge1 / judge3 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 3 | 
| other | AC * 13 TLE * 17 | 
ソースコード
#include<bits/stdc++.h>
using namespace std;
#include<atcoder/convolution>
#include<atcoder/modint>
typedef atcoder::static_modint<754974721> mint;
int main(){
	int n, m; cin >> n >> m;
	vector<int> a(n), b(n), c(n);
	vector<int> x(m), y(m), z(m);
	for (int i=0; i<n; i++){
		cin >> a[i] >> b[i] >> c[i];
	}
	for (int i=0; i<m; i++){
		cin >> x[i] >> y[i] >> z[i];
	}
	
	vector<mint> f(201 * 201 * 201);
	vector<mint> g(201 * 201 * 201);
	for (int i=0; i<n; i++){
		f[a[i] + b[i] * 201 + c[i] * 201 * 201] += 1;
		g[100 - a[i] + (100 - b[i]) * 201 + (100 - c[i]) * 201 * 201] += 1;
	}
	vector<mint> h = atcoder::convolution<mint>(f, g);
	int ans = 0;
	for (int i=0; i<m; i++){
		int t = h[(x[i] + 100) + (y[i] + 100) * 201 + (z[i] + 100) * 201 * 201].val();
		ans = max(ans, 2 * n - t);
	}
	cout << ans << '\n';
}
            
            
            
        
            
shobonvip