Le 19ème problème d'écriture en temps réel hors ligne en Python

Cliquez ici pour le problème http://nabetani.sakura.ne.jp/hena/ord19nebasec/

Cliquez ici pour d'autres exemples de réponses http://qiita.com/Nabetani/items/9810b301648099028bf0

from math import floor

def solve(data):
    bad = map(int, data.split(','))
    hdd = [[0]*n for n in (0, 8, 16, 24, 32)]
    def mark(t,s): hdd[t%len(hdd)][s%len(hdd[t])] += 1
    def side(t,s): return int(floor((s - 0.5) / track * t + 0.5))
    for track, sector in ((b/100, b%100) for b in bad):
        mark(track, sector-1)
        mark(track, sector+1)
        if track > 1:
            for s in range(side(track-1, sector), side(track-1, sector+1)+1):
                mark(track-1, s)
        if track < 4:
            for s in range(side(track+1, sector), side(track+1, sector+1)+1):
                mark(track+1, s)
    return ','.join(map(str, (t*100+s for t in (1,2,3,4) for s in range(8*t)
                              if hdd[t][s]>1 and t*100+s not in bad))) or "none"

def test(data, correct):
    answer = solve(data)
    print 'xo'[answer == correct], data, correct, answer

0, test( "400,401,302", "300,301,402" );
1, test( "105,100,306,414", "none" );
2, test( "100", "none" );
3, test( "211", "none" );
4, test( "317", "none" );
5, test( "414", "none" );
6, test( "100,106", "107" );
7, test( "205,203", "102,204" );
8, test( "303,305", "304" );
9, test( "407,409", "306,408" );
10, test( "104,103", "207" );
11, test( "204,203", "102,305" );
12, test( "313,314", "209,418" );
13, test( "419,418", "314" );
14, test( "100,102,101", "201,203" );
15, test( "103,206,309", "205,207,308,310" );
16, test( "414,310,309", "206,311,413" );
17, test( "104,102,206,307,102,202", "101,103,203,204,205,207,308" );
18, test( "104,206,308,409,407", "103,205,207,306,307,309,408,410" );
19, test( "313,406,213,301,409,422,412,102,428", "none" );
20, test( "101,300,210,308,423,321,403,408,415", "none" );
21, test( "304,316,307,207,427,402,107,431,412,418,424", "none" );
22, test( "205,408,210,215,425,302,311,400,428,412", "none" );
23, test( "200,311,306,412,403,318,427,105,420", "none" );
24, test( "105,305,407,408,309,208,427", "104,209,306,406" );
25, test( "311,304,322,404,429,305,316", "203,303,321,405,406,430" );
26, test( "210,401,316,425,101", "211,315" );
27, test( "414,403,404,416,428,421", "303,415" );
28, test( "207,300,103,211,428", "104,206" );
29, test( "322,314,310", "none" );
30, test( "427,200,215", "100,323" );
31, test( "311,402,424,307,318,430,323,305,201", "200,204,301,302,306,322,423,425,431" );
32, test( "425,430,408", "none" );
33, test( "202,320,209,426", "319,427" );
34, test( "430,209,302,310,304,431,320", "202,303,323" );
35, test( "208,206,406,424,213,312", "207,311,313" );
36, test( "420,302,313,413,317,402", "301,403" );
37, test( "319,306,309,418,204,411", "305,307,308,412" );
38, test( "400,308,105,430,203,428,209", "104,210,429,431" );
39, test( "200,305,214", "215" );
40, test( "214,408,410,407,317,422", "306,316,409,423" );

Recommended Posts

Le 19ème problème d'écriture en temps réel hors ligne en Python
Le 14ème problème de référence d'écriture en temps réel hors ligne avec Python
Le 15e comment écrire un problème de référence en temps réel hors ligne en Python
17e comment résoudre les problèmes d'écriture en temps réel hors ligne avec Python
Le 10ème problème de référence d'écriture en temps réel hors ligne. Exemple d'implémentation par Python.
Le 11ème problème de référence d'écriture en temps réel hors ligne. Exemple d'implémentation par python.
Le 18ème comment écrire un problème de référence en temps réel hors ligne en Python
17ème problème de référence d'écriture en temps réel hors ligne implémenté en Python
13th Offline en temps réel Comment résoudre les problèmes d'écriture avec Python
Le douzième problème de référence d'écriture en temps réel hors ligne. Implémenté par python
Le 16ème problème d'écriture en temps réel hors ligne a été résolu avec Python
Le 16ème comment écrire un problème de référence en temps réel hors ligne à résoudre avec Python
Le 15e problème d'écriture en temps réel hors ligne a été résolu avec python
20e Comment écrire des problèmes en temps réel hors ligne en Python
Le 15e temps réel hors ligne, j'ai essayé de résoudre le problème de l'écriture avec python
Réponse à "Comment écrire le problème F05 en temps réel hors ligne"
Réponse à "Comment écrire un problème E12 en temps réel hors ligne"
Résolvez le problème maximum de sous-tableau en Python
La première étape du problème de réalisation des contraintes en Python
Installez le package python dans un environnement hors ligne
Informations de base Écrire le problème d'algorithme de l'automne 2018 en Python
Résoudre un coup (retour en arrière sans récursivité en Python)
Trouver des erreurs en Python
Obtenir l'API arXiv en Python
[Note] Projet Euler en Python (problème 1-22)
Python dans le navigateur: la recommandation de Brython
Frappez l'API Sesami en Python
Obtenez le chemin du bureau en Python
ABC166 en Python A ~ C problème
Obtenez le chemin du script en Python
Dans la commande python, python pointe vers python3.8
Implémenter le modèle Singleton en Python
Accédez à l'API Web en Python
J'ai écrit la file d'attente en Python
Calculer le mois précédent en Python
Examiner la classe d'un objet avec python
Obtenez le chemin du bureau en Python
Obtenez le nom d'hôte en Python
Accéder à l'API Twitter avec Python
La première étape de Python Matplotlib
Lors de l'écriture d'un programme en Python
J'ai écrit la pile en Python
Maîtriser le module lowref en Python
Comment écrire un exemple d'implémentation Python du problème E15 en temps réel hors ligne
Essayez d'exécuter l'exemple de problème Python d'informations de base uniquement avec un navigateur
Résolvez les problèmes de somme partielle avec une recherche complète en Python
Partie 1 J'ai écrit la réponse au problème de référence de l'écriture hors ligne en temps réel en Python
Apprenez le modèle de conception "Prototype" avec Python
Charger le SDK Python distant avec IntelliJ
Livre Ali en python: page 42 numéros
Essayez d'utiliser l'API Wunderlist en Python
Apprenez le modèle de conception "Flyweight" en Python
Essayez d'utiliser l'API Kraken avec Python
Apprenez le modèle de conception "Memento" avec Python
Apprenez le modèle de conception "Proxy" en Python
Ecrire le test dans la docstring python
Apprenez le modèle de conception "Commande" en Python
Prenez la somme logique de List en Python (fonction zip)
Afficher Python 3 dans le navigateur avec MAMP