822B - Crossword solving - CodeForces Solution


brute force implementation strings *1000

Please click on ads to support us..

Python Code:

n, m = map(int, input().split())
s = input()
t = input()

k = -1
indices = []

for i in range(m-n+1):
    diferente = 0
    listaDifs = []
    for j in range(n):
        if t[i+j] != s[j]:
            diferente += 1
            listaDifs.append(j+1)
    if k == -1 or diferente < k:
        k = diferente
        indices = listaDifs

print(k)

if k > 0:
    print(*indices)
 							 	     		 			 	   		

C++ Code:

#include <bits/stdc++.h>
using namespace std;

int main() {
	// your code goes here
	int n,m;
	cin>>n>>m;
	string str1,str2;
	cin>>str1>>str2;
	int mini=INT_MAX;
	vector<int>v;
	bool ans=false;
	for(int i=0;i<=m-n;i++){
	    int ct=0;
	    vector<int>res;
	    for(int j=i;j<i+n;j++){
	        if(str2[j]!=str1[j-i]){
	            ct++;
	            res.push_back(j-i+1);
	        }
	    }
	    if(ct==0){
	        ans=true;
	        break;
	    }
	    if(ct<mini){
	        v.clear();
	        mini=ct;
	        for(auto ele:res){
	            v.push_back(ele);
	        }
	    }
	}
	if(ans){
	    cout<<0<<endl;
	}
	else{
	cout<<mini<<endl;
	for(auto ele:v){
	    cout<<ele<<" ";
	}cout<<endl;
	}
	return 0;
}


Comments

Submit
0 Comments
More Questions

1487A - Arena
1520D - Same Differences
376A - Lever
1305A - Kuroni and the Gifts
1609A - Divide and Multiply
149B - Martian Clock
205A - Little Elephant and Rozdil
1609B - William the Vigilant
978B - File Name
1426B - Symmetric Matrix
732B - Cormen --- The Best Friend Of a Man
1369A - FashionabLee
1474B - Different Divisors
1632B - Roof Construction
388A - Fox and Box Accumulation
451A - Game With Sticks
768A - Oath of the Night's Watch
156C - Cipher
545D - Queue
459B - Pashmak and Flowers
1538A - Stone Game
1454C - Sequence Transformation
165B - Burning Midnight Oil
17A - Noldbach problem
1350A - Orac and Factors
1373A - Donut Shops
26A - Almost Prime
1656E - Equal Tree Sums
1656B - Subtract Operation
1656A - Good Pairs